En Ubuntu 14.04, el uso de Apache2 con el paquete libapache2-mod-wsgi-py3 instalado produce errores en /var/log/apache2/error.log
La forma de reproducirse es sencilla:
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 da el siguiente error:
[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:
¿Cómo hacer que funcione sin errores?
virtualenv -p python3.4 DIRECTORY
, o por 3.4+, mejor:pyvenv-3.4 DIRECTORY
.cannot open shared object file: No such file or directory
) cuando intenta hacer esto, recuerde cambiar la versión en el paso 3. Estaba usando Python 3.5, 64 bits.mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
. Si no sabe qué versión tiene, vaya a la carpeta (/usr/lib/apache2/modules/
) y busque. Esta respuesta parece estar basada en Python 3.4 de 32 bits.sudo /venv_path/bin/mod_wsgi-express install-module
en el paso 3 se imprimirán los caminos que hay que poner en elwsgi_express
archivosSolo quería agregar algo a la respuesta aceptada proporcionada por samb.
Las líneas reales de configuración que necesita agregar a la configuración del módulo son las que genera el
mod_wsgi-express install-module
comando (esto no fue explícito en la respuesta aceptada).Además, en mi caso (y de acuerdo con la documentación del paquete mod_wsgi - probablemente este no fue el caso cuando se escribió la respuesta aceptada) no recibí ningún
wsgi_express.*
archivomods-available
, pero solowsgi.*
, y fue suficiente para reemplazar elwsgi.load
archivo con el nueva configuración ejecutandoPor supuesto, esto sobrescribiría todo el archivo, así que tenga cuidado en caso de que tenga más directivas.
fuente