В Ubuntu 14.04 использование Apache2 с установленным пакетом libapache2-mod-wsgi-py3 приводит к ошибкам в /var/log/apache2/error.log
Способ размножения прост:
sudo apt-get install apache2
sudo service apache2 restart
# /var/log/apache2/error.log is "clean"
sudo apt-get install libapache2-mod-wsgi-py3
sudo service apache2 restart
/var/log/apache2/error.log выдает следующую ошибку:
[Mon Jan 05 16:51:53.641332 2015] [:error] [pid 3141:tid 140703516379008] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Mon Jan 05 16:51:53.643563 2015] [:error] [pid 3141:tid 140703516379008] Traceback (most recent call last):
[Mon Jan 05 16:51:53.643633 2015] [:error] [pid 3141:tid 140703516379008] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Mon Jan 05 16:51:53.644350 2015] [:error] [pid 3141:tid 140703516379008] assert tlock is not None
[Mon Jan 05 16:51:53.643449 2015] [:error] [pid 3140:tid 140703516379008] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Mon Jan 05 16:51:53.644456 2015] [:error] [pid 3140:tid 140703516379008] Traceback (most recent call last):
[Mon Jan 05 16:51:53.644514 2015] [:error] [pid 3140:tid 140703516379008] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Mon Jan 05 16:51:53.645052 2015] [:error] [pid 3140:tid 140703516379008] assert tlock is not None
[Mon Jan 05 16:51:53.645119 2015] [:error] [pid 3141:tid 140703516379008] AssertionError:
[Mon Jan 05 16:51:53.647513 2015] [:error] [pid 3140:tid 140703516379008] AssertionError:
Как заставить его работать без ошибок?
virtualenv -p python3.4 DIRECTORY
, или 3.4+, лучше:pyvenv-3.4 DIRECTORY
.cannot open shared object file: No such file or directory
) при попытке сделать это, не забудьте переключить версию на шаге 3. Я использовал Python 3.5, 64-битный.mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
, Если вы не знаете, какая у вас версия, перейдите в папку (/usr/lib/apache2/modules/
) и посмотрите. Этот ответ, кажется, основан на 32-битном питоне 3.4.sudo /venv_path/bin/mod_wsgi-express install-module
на шаге 3, который напечатает пути, которые вам нужноwsgi_express
Просто хотел добавить что-то к принятому ответу, предоставленному samb.
Фактические строки конфигурации, которые вам нужно добавить в конфигурацию модуля, - это те, которые выводятся
mod_wsgi-express install-module
командой (это не было явно в принятом ответе).Кроме того, в моем случае (и в соответствии с документацией mod_wsgi pkg - вероятно, это был не тот случай, когда был написан принятый ответ), я не получил никаких
wsgi_express.*
файловmods-available
, но толькоwsgi.*
, и было достаточно заменитьwsgi.load
файл на новый конфиг, запустивКонечно, это перезапишет весь файл, так что будьте осторожны, если у вас появятся какие-либо дополнительные директивы.
источник