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,根文件夹的路径是`/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,当我尝试运行开发服务器时,我得到以下信息:

ImportError:无法导入设置“notecard.settings”(它在 sys.path 上吗?):没有名为 notecard.settings 的模块

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

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

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

从终端来看,它似乎正在获取多个环境变量。我不知道为什么 - 我认为它应该需要一个匹配的。

我很难弄清楚如何让它工作——最好是通过 Pycharm,但一般来说希望如此。

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

任何帮助,将不胜感激。

4

1 回答 1

3

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

于 2013-01-05T10:15:25.730 回答