我有一个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系统变量信息(以防万一。)
任何帮助都将不胜感激。
答案 0 :(得分:3)
正如错误消息所说,麻烦就是你的DJANGO_SETTINGS_MODULE。为什么你有多个值?它只需要一个单一的值:模块路径。在您的情况下,它应该是notecard.settings
。