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

1 投票
2 回答
3456 浏览
提问于 2025-04-16 23:51

大家好,感谢你们花时间来看我的问题。

我刚开始学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。

撰写回答