django导入设置问题

django导入设置问题

这似乎是许多其他人面临的常见问题,但其他修复方法都对我不起作用。这是我的 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

我最终将代码移到了父目录中(并重新创建了符号链接),它运行良好。我不知道它为什么不起作用。我之前使用的代码库都是这样设置的……

相关内容