我有一個Django應用程序有一個共同的目錄結構:Django:其中是settings.py尋找進口,爲什麼?
project
---manage.py
---app
---__init__.py
---settings.py
---settings_secret.py
---a bunch of other files for the app itself
這settings_secret.py文件包含secrets.py我不想發送到GitHub的變量。出於某種原因,我似乎無法將其導入settings.py。前5行settings.py的:
# Django settings for project.
DEBUG = True
TEMPLATE_DEBUG = DEBUG
import os
from settings_secret import *
從而未能與部分堆棧跟蹤:
File "/foo/bar/project/app/settings.py", line 5, in <module> from settings_secret import *
ImportError: No module named 'settings_secret'
要調試,我創建了一個測試文件中/項目/像這樣:
from settings_secret import *
print(VARIABLE_FROM_SETTINGS_SECRET)
它像一個魅力工作。很顯然,settings.py並沒有在settings_secret的正確位置。那麼它在哪裏看?
你在'app'下有'__init __。py'文件嗎?你還應該在'settings.py'中執行'from .settings_secret import *'。 – bbayles
我有一個'__init __。py',只是忘了包含問題。編輯英寸。是的,我試過'.settings_secret導入*'和它的工作 - 但爲什麼?它爲什麼會起作用,爲什麼它沒有使用點,就像它在我的測試文件中一樣? – fildred13
我想你應該通過環境變量設置你的導入,而不是「祕密文件」。 http://12factor.net/config – geekazoid