这似乎是许多其他人面临的常见问题,但其他修复方法都对我不起作用。这是我的 apache2/sites-available 文件:
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE getgps.settings
PythonOption django.root /
PythonDebug On
</Location>
Alias /media/css /home/getgps/media/css
<Location "/media/css">
SetHandler None
</Location>
错误信息如下:
Error: Could not import settings 'code.settings' (Is it on sys.path? Does it have syntax errors?): No module named settings
settings.py 位于 /home/getgps/code/settings.py 并且 /home/getgps/code 被链接,使得它是 python 环境中的 getgps(如果我在命令行中输入 import getgps.settings,它会导入相关文件,而不管我在加载 python 命令行时身在何处)。
tldr:符号链接有效,apache 文件很棒,但它似乎不喜欢我的文件结构。
答案1
你必须注释掉:
PythonOption django.root /
因为不需要(并且在本例中不起作用)。仅当您的网站不在 DocRoot 中时才需要使用此行。
注意:如果可以的话,建议从 mod_python 切换到 mod_wsgi,但并非所有提供商都接受它,因为有时需要重新启动 apache。
答案2
我最终将代码移到了父目录中(并重新创建了符号链接),它运行良好。我不知道它为什么不起作用。我之前使用的代码库都是这样设置的……