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

然后,该站点的apacheconfiguration:

 <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服务器读取 – 我testing了这个文件实际上是通过apache用户从命令行读取文件。

我也读过类似的build议,在这方面没有任何有用的帮助。 这让我疯狂。 🙂

删除.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的子模块。

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