无法导入设置。不支持按名称导入

时间:2013-01-05 04:23:28

标签: python django pycharm

我有一个Python 2.7 / Django 1.4项目。我正在运行Ubuntu 11.项目结构有一个Notecard的根文件夹,一个名为Notecard的项目,以及一个名为Notecards的应用程序:

notecard/

-- notecard/

-- -- manage.py

-- -- settings.py

-- -- __init__.py

-- -- urls.py

-- -- notecards/

-- -- app2/

我正在运行Linux,根文件夹的路径是`/ home / dan / 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,当我尝试运行dev服务器时,我得到以下内容:

  

ImportError:无法导入设置'notecard.settings'(是否打开   sys.path?):没有名为notecard.settings的模块

我的设置在Pycharm的Django支持部分都是正确的。

当我尝试直接从终端运行开发服务器时,我得到:

  

ImportError:无法导入设置   'notecard.settings:/家庭/张丹/ notecard /设置:/家庭/张丹/ notecard / notecard /设置'   (它是否在sys.path上?):不支持按文件名导入。

从终端,它似乎正在捡起多个环境变量。我不确定为什么 - 我认为它应该采用匹配的。

我很难搞清楚如何让这个工作 - 最好是通过Pycharm,但希望一般。

我显然已尝试添加所有环境变量,验证Pycharm设置并验证我的manage.py系统变量信息(以防万一。)

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

正如错误消息所说,麻烦就是你的DJANGO_SETTINGS_MODULE。为什么你有多个值?它只需要一个单一的值:模块路径。在您的情况下,它应该是notecard.settings