在谷歌应用程序引擎上,为什么我的"导入"语句在Live上失败,但在Dev(localmachine)上工作?

wil*_*lem 1 python django google-app-engine

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

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

from commands.userCommands import RegisterUserCommand
from commands.accountCommands import CreateNewAccountCommand, RenameAccountCommand
Run Code Online (Sandbox Code Playgroud)

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

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

我的文件结构如下......

- app.yaml
- urls.py
- views.py
- etc...
- commands/__init__.py
- commands/userCommands.py
Run Code Online (Sandbox Code Playgroud)

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

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

Ale*_*lli 5

您可能会遇到与Python自己的commands模块(它没有像您这样的子模块)的冲突- 以隐藏标准库中的模块的方式命名您自己的模块和包(就像命名您的变量一样)意味着隐藏内置名称,像listfile)总是一个危险的事业,即使它"应该"工作,总是有可能混淆.

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