簡體   English   中英

在Google App引擎上,為什么我的“導入”語句在Live上失敗,但是在Dev(localmachine)上可以工作?

[英]On the google app engine, why does my 'import' statement fail on Live, but work on Dev(localmachine)?

我有一個在google app引擎上運行的python / django應用程序。

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

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

這些導入可以在我的開發環境(本地計算機)上正常工作。 但是,當我上傳到Google App Engine時,views.py失敗,並顯示“無法導入視圖。錯誤是:沒有名為userCommands的模塊”錯誤。

知道為什么我不能導入commands.userCommands模塊嗎?

我的文件結構如下所示...

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

注意 :我確實嘗試將我的應用程序名稱附加到模塊名稱/路徑。 沒運氣。

注意 :我確實使用--noisy參數進行了更新,並且看起來確實可以成功上傳我的commands文件夾。

您可能會遇到與Python自己的commands模塊(沒有像您的子模塊那樣)的沖突–以用來在標准庫中隱藏模塊和包的方式命名您自己的模塊和包(就像用以下方式命名變量一樣)旨在隱藏內置名稱(例如listfile )的操作始終是一項艱巨的任務,即使它“應該”起作用,也總是存在混淆的可能。

您能否嘗試將該commands包及其使用重命名為明確mycommands東西(例如mycommands ,然后看看這是否使問題消失了? 如果是這種情況,您可以在GAE的跟蹤器上打開故障單(因為它會在GAE的運行時中顯示一個小但不可否認的錯誤),但與此同時,您的問題仍將得到解決!-)如果問題仍然存在,嗯,至少我們已經消除了一個可能的原因,可以繼續挖掘...

__init__.py文件是使Python將目錄視為包含包的必需文件,因此您需要

commands/__init__.py

目錄結構中的文件。 參見http://docs.python.org/tutorial/modules.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM