我在控制器中有一个文件名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'
答案 0 :(得分:0)
from getmsg import Classname, methodname
答案 1 :(得分:0)
在web2py中,控制器不是Python模块 - 您不导入它们。您可以将模块放在应用程序的/ modules文件夹中并从那里导入。
理论上,(假设/ controllers文件夹中有__init__.py
文件)你可以这样做:
import applications.myapp.controllers.getmsg
但这不会被视为标准做法。特别是,控制器不能用作常规Python模块。它们是在已经定义了大部分web2py API的环境中执行的,因此如果将控制器作为模块导入,其代码可能会引用不可用的全局对象,这将生成异常。