Django部署:ImportError:无法导入设置'settings.py'(在sys.path中吗?):没有名为settings.py的模块
大家好,感谢你们花时间来看我的问题。
我刚开始学Python,不过我之前有用过php和mysql的经验。
最近我接手了一个django网站的代码库,任务是把它在服务器上运行起来。
我已经成功运行了syncdb和迁移命令。
现在我想在浏览器里打开我的网站,但遇到了这个错误:
ImportError: Could not import settings 'settings.py' (Is it on sys.path?): No module named settings.py
我的apache2.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
我觉得你应该把下面这些代码的顺序调换一下:
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"
首先要设置好Python的路径,让它能找到settings.py这个文件,然后再把环境变量设置为这个文件。
不过,其实你最好还是按照文档上写的去安装mod-wsgi,这样会更清楚。
1
其实应该就是这样:
SetEnv DJANGO_SETTINGS_MODULE settings
不要加 '.py'。也就是说,这是一个Python模块的路径,而不是文件名。
要注意的是,mod_python这个项目现在已经不再维护了。Django对它的支持也已经停止。你应该考虑其他的方式来托管Django,而不是使用mod_python。