Кажется, это обычная проблема для многих других, но ни одно из других исправлений мне не помогло. Вот мой файл 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 связан так, что это getgps в среде python (если я ввожу import getgps.settings в командную строку, он импортирует файл вопрос, независимо от того, где я, когда я загружаю командную строку python).
tldr: sybolic link работает, файл apache великолепен, но мне не нравится моя файловая структура.
Наконец, я просто переместил код в родительский каталог (и переделал символическую ссылку), и он работал нормально. Понятия не имею, почему это не сработало. Все предыдущие кодовые базы, над которыми я работал, были настроены следующим образом ...
Вы должны прокомментировать:
PythonOption django.root /
так как это не нужно (и в данном случае не работает). Вам нужно использовать эту строку только в том случае, если вашего сайта нет в DocRoot.
Замечания: по возможности рекомендуется переключиться с mod_python на mod_wsgi, но не все провайдеры принимают его, поскольку иногда требуется перезапуск apache.