Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

339
Visualizações
Django/mod_wsgi/Apache - mod_wsgi no está usando la versión de Python para la que fue compilado - "ModuleNotFoundError: ningún módulo llamado 'math'"

Estoy intentando implementar una aplicación Django con Apache2 y mod_wsgi en un servidor Ubuntu 16.04.6, pero tengo problemas para que mod_wsgi use la versión correcta de Python.

Instalé mod_wsgi desde la fuente y lo configuré para compilar contra el sistema python3, específicamente python3.7.8

Mi entorno virtual para la aplicación Django también ejecuta python3.7.8.

Mi archivo de configuración de VirtualHost se ve así:

 <IfModule mod_ssl.c> <VirtualHost *:443> ServerName kumberas.com ServerAdmin webmaster@localhost.com WSGIScriptAlias / /home/dan/app/kumberas/kumberas/main/wsgi.py Alias /static/ /home/dan/app/kumberas/kumberas/static/ <Directory /home/dan/app/kumberas/kumberas/static> Require all granted </Directory> <Directory /home/dan/app/kumberas/venv> Require all granted </Directory> <Directory /home/dan/app/kumberas/kumberas/main> <Files wsgi.py> Require all granted </Files> </Directory> <Location /> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require user kr AuthBasicProvider file </Location> WSGIDaemonProcess kumberas \ python-home=/home/dan/app/kumberas/venv \ python-path=/home/dan/app/kumberas WSGIProcessGroup kumberas </VirtualHost> </IfModule>

Y cuando trato de acceder al sitio, obtengo un error 500 y lo siguiente en mi registro de errores de Apache.

 [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] mod_wsgi (pid=21635): Failed to exec Python script file '/home/dan/app/kumberas/kumberas/main/wsgi.py'. [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] mod_wsgi (pid=21635): Exception occurred processing WSGI script '/home/dan/app/kumberas/kumberas/main/wsgi.py'. [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] Traceback (most recent call last): [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] File "/home/dan/app/kumberas/kumberas/main/wsgi.py", line 12, in <module> [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] from django.core.wsgi import get_wsgi_application [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] File "/home/dan/app/kumberas/venv/lib/python3.7/site-packages/django/__init__.py", line 1, in <module> [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] from django.utils.version import get_version [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] File "/home/dan/app/kumberas/venv/lib/python3.7/site-packages/django/utils/version.py", line 1, in <module> [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] import datetime [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] File "/usr/lib/python3.7/datetime.py", line 8, in <module> [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] import math as _math [wsgi:error] [pid 21635] [remote xx.xx.xx.xx:58603] ModuleNotFoundError: No module named 'math'

Investigué un poco y encontré este archivo wsgi.py en la documentación de mod_wsgi para verificar la versión de python que está usando mod_wsgi, y obtengo el siguiente resultado cuando visito el sitio:

 sys.version = '3.7.2 (default, Jan 23 2020, 09:44:10) \n[GCC 5.4.0 20160609]' sys.prefix = '/home/dan/app/kumberas/venv'

Supongo que el problema aquí es la versión 3.7.8 != 3.7.2 de python que no coincide, pero que yo sepa, no hay una instalación de python3.7.2 en el servidor, y he reinstalado mod_wsgi varias veces asegurándome que lo configuro para usar 3.7.8.

También confirmé que, mientras estoy en el entorno virtual, a) puedo ejecutar la aplicación Django con manage.py runserver yb) puedo ejecutar get_wsgi_application() manualmente en el shell de Django.

¿Alguien sabe si esta discrepancia de versión es el problema y cómo podría resolverse?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Si se ha utilizado virtualenv o virtualenvwrapper para crear un entorno, debe llamar al script de activación en wsgi.py:

 python_home = '/home/dan/app/kumberas/venv' activate_this = python_home + '/bin/activate_this.py' execfile(activate_this, dict(__file__=activate_this))
over 4 years ago · Santiago Trujillo Relatório

0

Parece que podrías tener una versión que no coincide. Algunos Linux todavía usan python 2.7 como predeterminado.

También verifique si el sistema tiene más de una versión de python usando locate python y/o locate python3

Si se trata de un problema en modwsgi , podría ser más fácil para usted compilar mod_wsgi desde la fuente siguiendo el enlace https://modwsgi.readthedocs.io/en/develop/user-guides/quick-installation-guide.html

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda