[英]Django Cannot Import File in Subdirectory
我幾乎可以肯定我缺少明顯的東西,但是進口已經困擾了我一段時間。
在較大的Django項目中,我具有以下應用程序結構:
\reporting\
\reporting\__init__.py
\reporting\<all other default django files>
\reporting\utils\__init__.py
\reporting\utils\base_file.py
\reporting\utils\appname_reporting.py
我正在嘗試將appname_reporting
導入到\\reporting\\views.py
。
我曾嘗試import utils.appname_reporting
, from utils import appname_reporting
,並from .utils import appname_reporting
。 它們全都給我一個錯誤: ImportError: No module named 'appname_reporting'
。
沒有其他文件可以導入appname_reporting.py
。 並且appname_reporting.py
導入base_file.py
。
更新
我在views.py
導入了appname_reporting
,但是現在我在appname_reporting
有一個損壞的導入, appname_reporting
無法導入base_file
。 在這里,我只是import base_file
,它在我的測試中失敗了。 我也嘗試import .base_file
,但失敗。
您需要在/reporting
PYTHONPATH
環境變量中進行/reporting
。 檢查它是否包含在
import sys
for p in sys.path:
print p
之后,您可以使用相對導入:
appname_reporting.py:
from . import base_file
views.py
from .utils import appname_reporting
但是請注意循環導入(例如,如果要在__init__.py
文件中導入某些內容)。
您可以使用詳細開關運行Python:
python -v views.py
查看正在導入的內容以及導入順序。 它會告訴您是否有循環導入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.