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

标签 python django google-app-engine

我有一个在谷歌应用引擎上运行的 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模块(没有像你这样的子模块)——以隐藏标准库中的方式命名你自己的模块和包(就像以隐藏内置名称的方式命名你的变量,比如 listfile) 始终是一项危险的任务,即使它“应该”起作用,也总是存在混淆的可能性。

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

关于python - 在谷歌应用引擎上,为什么我的 'import' 语句在 Live 上失败,但在 Dev(localmachine) 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1914881/

相关文章:

Python 缩进问题 : Expected an indentation block

Python WTForms : How to dynamically set options of a SelectField in FieldList of FormFields?

java - Google App Engine 数据存储集成测试

python - divmod() 是否比使用 % 和//运算符更快?

python - 属性错误 : 'str' object has no attribute 'public_blob'

python - 无法在 Cloud Run 应用中读取 pickle 文件。类型错误 : __cinit__() takes at least 2 positional arguments

python - 如何从 Django View rsync 到本地文件夹

django - 在序列化器中保留本地时区

python - 将 where 与 pandas 和分类列一起使用时出错

google-app-engine - 谷歌应用引擎 Java : how to remove unused indexes?