Skip to main content
 首页 » 编程设计

python之在谷歌应用引擎上,为什么我的 'import' 语句在 Live 上失败,但在 Dev(localmachine) 上工作

2025年05月04日14shanyou

我有一个在谷歌应用引擎上运行的 python/django 应用程序。

我的 views.py 文件有一些导入...

from commands.userCommands import RegisterUserCommand 
from commands.accountCommands import CreateNewAccountCommand, RenameAccountCommand 

这些导入在我的开发环境(本地机器)上运行良好。但是当我上传到谷歌应用引擎时,views.py 失败并显示“无法导入 View 。错误是:没有名为 userCommands 的模块”错误。

知道为什么我无法导入我的 commands.userCommands 模块吗?

我的文件结构如下...

- app.yaml 
- urls.py 
- views.py 
- etc... 
- commands/__init__.py 
- commands/userCommands.py 

注意:我确实尝试将我的应用程序名称附加到模块名称/路径。运气不好。

注意:我确实使用 --noisy 参数进行了更新,它似乎确实成功上传了我的命令文件夹。

请您参考如下方法:

您可能会遇到与 Python 自身的冲突 commands模块(没有像你这样的子模块)——以隐藏标准库中的方式命名你自己的模块和包(就像以隐藏内置名称的方式命名你的变量,比如 list 或 file) 始终是一项危险的任务,即使它“应该”起作用,也总是存在混淆的可能性。

您能否尝试将该 commands 包及其用途重命名为明确且没有危险的名称,例如 mycommands,看看是否能使问题消失?如果是这种情况,您可以在 GAE 的跟踪器上开票(因为它会显示 GAE 运行时中的一个小但不可否认的错误)但同时您的问题已解决!-) 如果问题仍然存在,嗯,至少我们已经消除了一个可能的原因并且可以继续挖掘......