web2py如何在同一目录下导入模块?

时间:2013-03-13 01:20:56

标签: web2py

我在控制器中有一个文件名default.py,在同一目录下有一个文件getmsg.py, 但是我无法在getmsg中导入default.py。为什么不?我该如何导入它?

错误:

Traceback (most recent call last):
  File "F:\xampp\htdocs\web2py\gluon\restricted.py", line 212, in restricted
    exec ccode in environment
  File "F:/xampp/htdocs/web2py/applications/tools/controllers/default.py", line 11, in <module>
    import getmsg
  File "F:\xampp\htdocs\web2py\gluon\custom_import.py", line 81, in custom_importer
    raise ImportError, 'Cannot import module %s' % str(e)
ImportError: Cannot import module 'getmsg'

2 个答案:

答案 0 :(得分:0)

from getmsg import Classname, methodname

答案 1 :(得分:0)

在web2py中,控制器不是Python模块 - 您不导入它们。您可以将模块放在应用程序的/ modules文件夹中并从那里导入。

理论上,(假设/ controllers文件夹中有__init__.py文件)你可以这样做:

import applications.myapp.controllers.getmsg

但这不会被视为标准做法。特别是,控制器不能用作常规Python模块。它们是在已经定义了大部分web2py API的环境中执行的,因此如果将控制器作为模块导入,其代码可能会引用不可用的全局对象,这将生成异常。

相关问题