2013-01-05 52 views
3

我有一個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系統變量的信息,以及(以防萬一。)

任何幫助,將不勝感激。

+1

您是否已將「PYTHONPATH」環境變量設置爲不在您的實際操作系統環境中,而是在您的PyCharm環境中?試着這樣做。 – jdotjdot

+0

你真的擁有大寫S的Settings.py嗎? Linux文件系統區分大小寫;如果您的磁盤上有「Settings.py」,它將無法導入「設置」。 – yole

+0

所有的文件夾和文件都是小寫,我的道歉 - 我編輯了這篇文章。 Jdotjdot - 我改變了Pycharm中的'PYTHONPATH'和'DJANGO_SETTINGS_MODULE'變量,現在我只是簡單地得到「不支持按文件名導入」。沒有其他信息。我的Pycharm'PYTHONPATH'是'/ home/dan/notecard',我的Pycharm'DJANGO_SETTINGS_MODULE'是'notecard.settings'。我沒有在環境變量或設置文件中的任何地方使用特定的文件名,例如'settings.py'。 –

回答

3

如錯誤信息所示,您的問題是您的DJANGO_SETTINGS_MODULE。爲什麼你有多個值呢?它只需要一個單一的值:一個模塊路徑。在你的情況下,它可能應該是notecard.settings

+0

將Linux環境變量(Pycharm外部)中的DJANGO_SETTINGS_MODULE更改爲只有notecard.settings結果如下: 'ImportError:無法導入設置'notecard.settings'(是否在sys.path?上):沒有指定模塊notecard.settings' –

+0

其實,我看到問題的部分是什麼。我的環境變量分配並不在Linux中。如果我在shell中分配了變量「PYTHONPATH」和「DJANGO_SETTINGS_MODULE」,它們將只保留爲該shell的分配。打開另一個殼,他們走了。但是,如果他們被分配上述錯誤消失,我留下了'不支持導入文件名' - 我得到上述建議PyCharm同樣的錯誤。 –

+0

除了上面的內容,我還有一個'INSTALLED APP'列出了一個/ ..不知道爲什麼。謝謝 –