Django部署:ImportError:无法导入设置'settings.py'(是否在sys.path上?):没有名为settings.py的模块

时间:2011-08-18 10:05:34

标签: python deployment importerror sys.path

大家好,感谢您抽出宝贵时间查看我的问题。

我是Python的新手,以为我有php / mysql的经验。

我刚刚交给django网站的代码存储库,并要求在服务器上启动并运行。 我已经能够运行syncdb和迁移。 现在我正试图在浏览器中导航到我的网站,这是我得到的错误:

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

我的apach2.conf python配置如下所示:

<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonOption django.root /myproject
SetEnv DJANGO_SETTINGS_MODULE settings.py
PythonPath "['/home/ubuntu/envs/live/','/home/ubuntu/envs/live/myproject','/home/ubuntu/envs/live/myproject/apps', '/home/ubuntu/envs/stage/myproject', '/home/ubuntu/envs/', '/var/www'] + sys.path"
PythonDebug on

settings.py文件位于/ home / ubuntu / venvs / live / myproject目录中。

有人可以帮我吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

应该只是:

SetEnv DJANGO_SETTINGS_MODULE settings

没有'.py'。也就是说,它是一个Python模块路径,而不是文件名。

请注意,mod_python是正式的死项目。 Django的支持已被弃用。您应该查看替代mod而不是mod_python来托管Django。

答案 1 :(得分:0)

我认为你应该翻转以下几行的顺序:

SetEnv DJANGO_SETTINGS_MODULE settings.py
PythonPath "['/home/ubuntu/envs/live/','/home/ubuntu/envs/live/myproject','/home/ubuntu/envs/live/myproject/apps', '/home/ubuntu/envs/stage/myproject', '/home/ubuntu/envs/', '/var/www'] + sys.path"

首先设置可以找到settings.py的Python路径,然后将env设置为该文件。

但是,您应该只需将mod-wsgi安装为very well documented