Я пытаюсь перевести существующее работающее приложение django из локального env (например, /usr/lib/python2.7/site-packages) в использование virtualenv (например, [PATH_TO_VIRTUALENV] / lib / python2. 7 / сайт-пакеты). Это предназначено, чтобы помочь мне с обновлениями пакета в конечном счете, так что я могу откатиться к предыдущему env при необходимости.
Я начал с установки на свежую virtualenv всех пакетов, установленных в локальной среде env, с использованием точно таких же версий. На данный момент я могу запустить форму оболочки django в директории приложения (/ home / django / qa / web), используя новый env, который должен подтвердить, что все зависимости выполнены.
Ниже приведены исходные рабочие конфигурации.
wsgi.py:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
application = get_wsgi_application()
VirtualHost:
<VirtualHost *:80>
ServerName qa.myserv.com
DocumentRoot /var/www/qa.myserv.com/public_html
ErrorLog /var/www/qa.myserv.com/logs/error.log
CustomLog /var/www/qa.myserv.com/logs/requests.log combined
<Directory /home/django/qa/web/web>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess qa python-path=/home/django/qa/web:/lib/python2.7/site-packages
WSGIProcessGroup qa
WSGIScriptAlias / /home/django/qa/web/web/wsgi.py
</VirtualHost>
Теперь я попытался заставить это работать с виртуальным env, который расположен в /home/django/env/qa_0
, изменив строку WSGIDaemonProcess
:
Попытка 1
WSGIDaemonProcess qa python-path=/home/django/qa/web:/home/django/env/qa_0/lib/python2.7/site-packages
Это привело к внутренней ошибке сервера со следующим в журнале ошибок:
[Wed Apr 25 13:57:25.089794 2018] [:error] [pid 23812] [remote 192.168.1.248:240] from django.core.wsgi import get_wsgi_application
[Wed Apr 25 13:57:25.089845 2018] [:error] [pid 23812] [remote 192.168.1.248:240] ImportError: No module named wsgi
Попытка 2
WSGIDaemonProcess qa python-home=/home/django/env/qa_0 python-path=/home/django/qa/web
Это также привело к внутренней ошибке сервера, которая заняла больше времени и в журнале ошибок заканчивается следующим:
[Wed Apr 25 13:30:58.779124 2018] [core:error] [pid 17503] [client 192.168.1.248:53731] Script timed out before returning headers: wsgi.py
Я просмотрел документы django и modwsgi настолько хорошо, насколько мог, а также рассматривал каждый связанный вопрос, который я мог найти при переполнении стека, я не могу понять это. Есть идеи?