Django“无法导入设置‘settings.py’”错误

Django“无法导入设置‘settings.py’”错误

我已经尽力遵循http://docs.djangoproject.com/en/dev/howto/deployment/modpython/,但客户正在将网站转移给我们,我怀疑原始开发人员的方法有点不同。

首先是完整的错误消息:

ImportError: Could not import settings 'settings.py' (Is it on sys.path? Does it have syntax errors?): No module named py

然后,站点的 apache 配置:

<Location /acecoach/>
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE settings.py
    PythonOption django.root /acecoach
    PythonPath "['/home/acecoach/public_html/acecoach'] + sys.path"
    PythonDebug On
</Location>

现在,据我所知,“设置模块”位于/home/acecoach/public_html/acecoach/settings.py该文件可由 apache 服务器读取 - 我通过实际 SU-ing 到 apache 用户并从命令行读取文件来测试这一点。

我也读过关于此错误消息的类似建议,但发现没有有用的帮助。这让我很抓狂。:)

答案1

删除.py文件扩展名并将项目上下文添加到您的设置模块定义中。假设您的项目名为acecoach

SetEnv DJANGO_SETTINGS_MODULE acecoach.settings

Python 文档对原因的解释比我尝试的要简单得多。

http://docs.python.org/tutorial/modules.html#modules

模块是包含 Python 定义和语句的文件。文件名为模块名加上后缀 .py。

http://docs.python.org/tutorial/modules.html#packages

包是使用“点状模块名称”构造 Python 模块命名空间的一种方式。例如,模块名称 AB 表示包 A 中名为 B 的子模块。

答案2

嘿,我在 mod_python 中也遇到了同样的问题,但是当我迁移到 apache + mod_wsgi 时,所有问题都解决了。
你为什么不试试 mod_wsgi ?
它比 mod_python 新,没有这样的问题。
但如果你想解决这个问题,你可以去这个地址:
https://stackoverflow.com/questions/1216340/django-newbie-deployment-question-importerror-could-not-import-settings-setti

相关内容