Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

707
Vistas
Django AWS Elastic Beanstalk error Configurado incorrectamente: error al cargar el módulo MySQLdb: ningún módulo llamado MySQLdb

Sé que este error ha llegado a muchas personas y he probado diferentes soluciones y ninguna de ellas funcionó.

Estoy usando aws eb cli.

Estoy usando el siguiente comando eb deploy para implementar mi aplicación en el servidor.

A continuación se muestra la configuración de mi Django.

en el directorio .ebextensions , tengo los siguientes 2 archivos:

1: 01_paquetes.config

 packages: yum: git: [] python27-devel: [] mysql: [] mysql-devel: []

y otro archivo es

2: 02_django.conf

 option_settings: "aws:elasticbeanstalk:application:environment": DJANGO_SETTINGS_MODULE: "settings.development" "PYTHONPATH": "/opt/python/current/app/src:$PYTHONPATH" "aws:elasticbeanstalk:container:python": WSGIPath: src/wsgi.py NumProcesses: 3 NumThreads: 20 "aws:elasticbeanstalk:container:python:staticfiles": "/static/": "static/"

El siguiente es mi archivo requirements.txt después de pip freeze en mi entorno virtual local.

requisitos.txt

 asn1crypto==0.24.0 awsebcli==3.17.1 backports.ssl-match-hostname==3.5.0.1 botocore==1.14.17 cement==2.8.2 cent==2.1.0 centrifuge==0.8.4 certifi==2017.11.5 cffi==1.11.2 chardet==3.0.4 colorama==0.3.9 cryptography==2.1.4 Django==1.8.18 django-colorfield==0.1.14 django-countries==5.0 django-debug-toolbar==1.9.1 django-environ==0.4.4 django-multiselectfield==0.1.8 django-simple-history==1.9.1 django-sslserver==0.20 docutils==0.15.2 enum34==1.1.6 future==0.16.0 google-api-python-client==1.6.4 hiredis==0.2.0 html5lib==1.0b8 httplib2==0.10.3 icalendar==4.0.0 idna==2.6 ipaddress==1.0.18 jmespath==0.9.4 jsonschema==2.4.0 mysqlclient==1.4.6 oauth2client==2.0.0 oauthclient==1.0.3 olefile==0.44 pathspec==0.5.9 paypalrestsdk==1.13.1 pdfcrowd==4.0.1 phonenumbers==8.8.6 Pillow==4.3.0 pyasn1==0.3.7 pyasn1-modules==0.1.5 pycparser==2.18 PyJWT==1.5.3 pyOpenSSL==17.5.0 PyPDF2==1.26.0 pypiwin32==219 pytesseract==0.1.7 python-dateutil==2.6.1 pytz==2017.3 PyYAML==5.2 reportlab==3.4.0 requests==2.18.4 rsa==3.4.2 semantic-version==2.5.0 six==1.11.0 sockjs-tornado==1.0.1 sqlparse==0.2.4 termcolor==1.1.0 toredis-fork==0.1.4 tornado==4.2.1 toro==0.8 twilio==6.9.1 uritemplate==3.0.0 urllib3==1.22 wcwidth==0.1.8 webencodings==0.5.1 xhtml2pdf==0.2.2

Guardé esto en mi directorio raíz.

Cuando ejecuto eb deploy

se despliega con éxito.

ingrese la descripción de la imagen aquí

pero cuando ejecuto el navegador en mi url.

Aparece esta página Internal Server Error .

ingrese la descripción de la imagen aquí

Así que traté de buscar en los archivos de registro en el servidor en /var/log/httpd/error_log

Obtuve el siguiente error:

 [Mon Feb 24 17:56:57.227427 2020] [:error] [pid 8054] [remote 101.50.93.65:188] mod_wsgi (pid=8054): Target WSGI script '/opt/python/current/app/src/wsgi.py' cannot be loaded as Python module. [Mon Feb 24 17:56:57.227450 2020] [:error] [pid 8054] [remote 101.50.93.65:188] mod_wsgi (pid=8054): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 17:56:57.227466 2020] [:error] [pid 8054] [remote 101.50.93.65:188] Traceback (most recent call last): [Mon Feb 24 17:56:57.227483 2020] [:error] [pid 8054] [remote 101.50.93.65:188] File "/opt/python/current/app/src/wsgi.py", line 17, in <module> [Mon Feb 24 17:56:57.227585 2020] [:error] [pid 8054] [remote 101.50.93.65:188] application = get_wsgi_application() [Mon Feb 24 17:56:57.227599 2020] [:error] [pid 8054] [remote 101.50.93.65:188] File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application [Mon Feb 24 17:56:57.227627 2020] [:error] [pid 8054] [remote 101.50.93.65:188] django.setup() [Mon Feb 24 17:56:57.227634 2020] [:error] [pid 8054] [remote 101.50.93.65:188] File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/__init__.py", line 18, in setup [Mon Feb 24 17:56:57.227645 2020] [:error] [pid 8054] [remote 101.50.93.65:188] apps.populate(settings.INSTALLED_APPS) [Mon Feb 24 17:56:57.227651 2020] [:error] [pid 8054] [remote 101.50.93.65:188] File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/apps/registry.py", line 78, in populate [Mon Feb 24 17:56:57.227662 2020] [:error] [pid 8054] [remote 101.50.93.65:188] raise RuntimeError("populate() isn't reentrant") [Mon Feb 24 17:56:57.227676 2020] [:error] [pid 8054] [remote 101.50.93.65:188] RuntimeError: populate() isn't reentrant

Así que seguí buscando en Google y encontré una publicación sugerida para cambiar el archivo wsgi, lo hice y luego este error se actualizó a las siguientes líneas de código.

 [Mon Feb 24 18:23:12.169850 2020] [mpm_prefork:notice] [pid 9081] AH00169: caught SIGTERM, shutting down [Mon Feb 24 18:23:13.289449 2020] [suexec:notice] [pid 10286] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Mon Feb 24 18:23:13.305290 2020] [so:warn] [pid 10286] AH01574: module wsgi_module is already loaded, skipping [Mon Feb 24 18:23:13.307373 2020] [http2:warn] [pid 10286] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive. [Mon Feb 24 18:23:13.307384 2020] [http2:warn] [pid 10286] AH02951: mod_ssl does not seem to be enabled [Mon Feb 24 18:23:13.307990 2020] [lbmethod_heartbeat:notice] [pid 10286] AH02282: No slotmem from mod_heartmonitor [Mon Feb 24 18:23:13.308050 2020] [:warn] [pid 10286] mod_wsgi: Compiled for Python/2.7.13. [Mon Feb 24 18:23:13.308057 2020] [:warn] [pid 10286] mod_wsgi: Runtime using Python/2.7.16. [Mon Feb 24 18:23:13.311200 2020] [mpm_prefork:notice] [pid 10286] AH00163: Apache/2.4.41 (Amazon) mod_wsgi/3.5 Python/2.7.16 configured -- resuming normal operations [Mon Feb 24 18:23:13.311217 2020] [core:notice] [pid 10286] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' [Mon Feb 24 18:23:16.367182 2020] [:error] [pid 10293] [remote 127.0.0.1:0] mod_wsgi (pid=10293): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:23:16.367240 2020] [:error] [pid 10293] [remote 127.0.0.1:0] RuntimeError: response has not been started [Mon Feb 24 18:23:17.744228 2020] [:error] [pid 10291] [remote 127.0.0.1:0] mod_wsgi (pid=10291): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:23:17.744288 2020] [:error] [pid 10291] [remote 127.0.0.1:0] RuntimeError: response has not been started [Mon Feb 24 18:23:19.116825 2020] [:error] [pid 10292] [remote 127.0.0.1:0] mod_wsgi (pid=10292): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:23:19.116892 2020] [:error] [pid 10292] [remote 127.0.0.1:0] RuntimeError: response has not been started [Mon Feb 24 18:23:20.493432 2020] [:error] [pid 10418] [remote 127.0.0.1:0] mod_wsgi (pid=10418): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:23:20.493489 2020] [:error] [pid 10418] [remote 127.0.0.1:0] RuntimeError: response has not been started [Mon Feb 24 18:36:44.987693 2020] [:error] [pid 10443] [remote 95.105.12.68:0] mod_wsgi (pid=10443): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:36:44.987766 2020] [:error] [pid 10443] [remote 95.105.12.68:0] RuntimeError: response has not been started [Mon Feb 24 18:55:28.298121 2020] [:error] [pid 10468] [remote 101.50.93.65:0] mod_wsgi (pid=10468): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:55:28.298180 2020] [:error] [pid 10468] [remote 101.50.93.65:0] RuntimeError: response has not been started [Mon Feb 24 18:55:30.126198 2020] [:error] [pid 10499] [remote 101.50.93.65:0] mod_wsgi (pid=10499): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:55:30.126260 2020] [:error] [pid 10499] [remote 101.50.93.65:0] RuntimeError: response has not been started [Mon Feb 24 18:55:31.671293 2020] [:error] [pid 10973] [remote 101.50.93.65:0] mod_wsgi (pid=10973): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:55:31.671358 2020] [:error] [pid 10973] [remote 101.50.93.65:0] RuntimeError: response has not been started [Mon Feb 24 18:55:32.858757 2020] [:error] [pid 11606] [remote 101.50.93.65:0] mod_wsgi (pid=11606): Exception occurred processing WSGI script '/opt/python/current/app/src/wsgi.py'. [Mon Feb 24 18:55:32.858821 2020] [:error] [pid 11606] [remote 101.50.93.65:0] RuntimeError: response has not been started

y este es el nuevo archivo wsgi.py.

 import os import logging os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.development") from django.core.wsgi import get_wsgi_application # application = get_wsgi_application() env_variables_to_pass = ['DJANGO_SETTINGS_MODULE', ] def application(environ, start_response): if environ['mod_wsgi.process_group'] != '': import signal os.kill(os.getpid(), signal.SIGINT) return ["killed"]

y el siguiente era el antiguo archivo wsgi.py

 import os import logging os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.development") from django.core.wsgi import get_wsgi_application application = get_wsgi_application() env_variables_to_pass = ['DJANGO_SETTINGS_MODULE', ]

Entonces traté de ejecutar la aplicación en el servidor usando python manage.py runserver ya que no había nada más que hacer para solucionar esto y no estaba seguro de dónde estaba el problema.

Así que hice ssh y usé el entorno virtual del servidor que ya estaba allí creado por EB.

ingrese la descripción de la imagen aquí

después de ejecutar python manage.py runserver.

Recibo este siguiente error.

 File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 27, in <module> raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

ingrese la descripción de la imagen aquí

Así que traté de seguir todos los consejos que pude ver disponibles en Google.

pip install mysqlclient

me sale este error

 Collecting mysqlclient Using cached https://files.pythonhosted.org/packages/d0/97/7326248ac8d5049968bf4ec708a5d3d4806e412a42e74160d7f266a3e03a/mysqlclient-1.4.6.tar.gz Complete output from command python setup.py egg_info: sh: mysql_config: command not found sh: mariadb_config: command not found sh: mysql_config: command not found Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-build-MxFUOd/mysqlclient/setup.py", line 16, in <module> metadata, options = get_config() File "setup_posix.py", line 61, in get_config libs = mysql_config("libs") File "setup_posix.py", line 29, in mysql_config raise EnvironmentError("%s not found" % (_mysql_config_path,)) EnvironmentError: mysql_config not found ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-MxFUOd/mysqlclient/

Probé ambos

pip install mysqlclient --no-cache-dir

y

pip install mysqlclient

Es el servidor Centos, por lo que no puedo ejecutar los comandos sudo apt-get.

Solo funcionan los comandos yum.

Intenté este siguiente comando con sudo

sudo pip install mysql-connector-python

Pero creo que esto se instalará globalmente en lugar de env.

Así que probé sin sudo, y dio error de permiso.

Usé otros comandos para instalar mysql tanto con sudo como sin sudo.

pip install pymysql

sudo yum install python-mysqldb

No importa lo que haga, me sale este error de MySQL.

No quiero moverme a otra base de datos, ya que también tendría que mover datos.


ACTUALIZAR

de la sugerencia dada de @Arun K ejecuté este siguiente comando

which mysql_config

Recibí esta siguiente respuesta.

 /usr/bin/which: no mysql_config in (/opt/python/run/venv/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin)

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

intenta correr

 sudo yum install mysql-devel gcc python-devel

Luego

 pip install mysqlclient
over 4 years ago · Santiago Trujillo Denunciar

0

¿Por qué no usa la ventana acoplable y ejecuta la aplicación Django como un contenedor? El beanstalk elástico también es compatible con el tipo docker. Hay tantos artículos en Internet que detallan los pasos. no tienes que preocuparte por centos.

Referencia: Django en Docler

over 4 years ago · Santiago Trujillo Denunciar

0

en mi caso en Amazon Linux 2/3.0.1 de 64 bits, tuve que instalar lo siguiente a través de *.config dentro de .ebextensions

 packages: yum: python3-devel: [] mariadb-devel: [] gcc: []

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda