【发布时间】:2025-12-22 10:50:11
【问题描述】:
我将一个模块复制到 web2py 中应用程序的“模块”文件夹中。当我尝试在任何控制器内的任何函数中导入模块时,我收到以下错误:
<type 'exceptions.ImportError'> No module named module_name
无论使用什么模块,我都会收到该错误。但是如果我将相同的模块复制到“站点包”并导入它,它就可以完美地工作。
我发现“sys.path”不包含 modules 文件夹,但包含“site-packages”文件夹。
如何将模块文件夹添加到特定于 web2py 的“sys.path”,或者有没有其他方法可以解决这个问题?
【问题讨论】:
-
我认为您应该尝试在virtualenv 中设置您的项目。您将在更清洁、更简单的环境中运行,而且,重要的是,您将减少因犯错而破坏一切的机会。
-
您的 /modules 文件夹中有
__init__.py文件吗?如果没有,请添加一个。 -
@Alexis 尽管 virtualenv 将是一个解决方案,但我仍然想知道如何以 web2py 的方式进行操作。 web2py 中每个应用程序的“模块”文件夹似乎是为与我的问题类似的目的而设计的。所以,我认为这样做会更好。不过,我也在考虑你的建议。
-
@Anthony 是的,模块文件夹中有一个 init.py,但似乎仍然不起作用,因为模块文件夹不在 web2py 的 sys.path 中
-
web2py 还使用local_import 功能吗?那是您使用的SUB吗?我从来没有从任何地方导入自定义模块,除了模块并且只使用 local_import ...