我有一個Python 2.7/Django 1.4項目。我運行Ubuntu 11.項目結構具有Notecard,一個名爲Notecard項目的根文件夾和應用程序命名Notecards:無法導入設置。不支持按名稱導入
notecard/
-- notecard/
-- -- manage.py
-- -- settings.py
-- -- __init__.py
-- -- urls.py
-- -- notecards/
-- -- app2/
我運行Linux和路徑的根文件夾是` /家庭/張丹/ notecard/
我的PYTHONPATH變量是:
>>> os.environ['PYTHONPATH'].split(os.pathsep)
['', '/home/dan/notecard', '/home/dan', '/home/dan/notecard/notecard/settings']
我DJANGO_SETTINGS_MODULE是:
>>> os.environ['DJANGO_SETTINGS_MODULE'].split(os.pathsep)
['notecard.settings', '/home/dan/notecard/settings', '/home/dan/notecard/notecard/settings']
而且我Manage.py是:
#!/usr/bin/env python
import os, sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "notecard.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
我用PyCharm作爲我的IDE,當我嘗試運行開發服務器,我得到以下幾點:
ImportError: Could not import settings 'notecard.settings' (Is it on sys.path?): No module named notecard.settings
我的設置是正確的Pycharm的Django支持部分。
當我嘗試直接從終端上運行開發服務器,我得到:
ImportError: Could not import settings 'notecard.settings:/home/dan/notecard/settings:/home/dan/notecard/notecard/settings' (Is it on sys.path?): Import by filename is not supported.
從終端,它似乎是撿了多個環境變量。我不知道爲什麼 - 我認爲它應該採取一個匹配。
我很難搞清楚如何使這個工作 - 最好通過Pycharm,但希望一般。
我顯然試圖將所有的環境變量,驗證Pycharm設置和驗證我的manage.py系統變量的信息,以及(以防萬一。)
任何幫助,將不勝感激。
您是否已將「PYTHONPATH」環境變量設置爲不在您的實際操作系統環境中,而是在您的PyCharm環境中?試着這樣做。 – jdotjdot
你真的擁有大寫S的Settings.py嗎? Linux文件系統區分大小寫;如果您的磁盤上有「Settings.py」,它將無法導入「設置」。 – yole
所有的文件夾和文件都是小寫,我的道歉 - 我編輯了這篇文章。 Jdotjdot - 我改變了Pycharm中的'PYTHONPATH'和'DJANGO_SETTINGS_MODULE'變量,現在我只是簡單地得到「不支持按文件名導入」。沒有其他信息。我的Pycharm'PYTHONPATH'是'/ home/dan/notecard',我的Pycharm'DJANGO_SETTINGS_MODULE'是'notecard.settings'。我沒有在環境變量或設置文件中的任何地方使用特定的文件名,例如'settings.py'。 –