django – Error al cargar el módulo MySQLdb: no hay un módulo llamado MySQLdb

Estoy usando Django 1.4.1 con Active Python 2.7 en Win7. He instalado el módulo MySQL usando pypm install mysql-python .

El motor de la base de datos es django.db.backends.mysql .

import MySQLdb funciona en la shell interactiva.

.\manage.py syncdb creó las tablas sin ningún problema.

Sin embargo, cuando abro el sitio en el navegador, me Error loading MySQLdb module: No module named MySQLdb un Error loading MySQLdb module: No module named MySQLdb :

 Environment: Request Method: GET Request URL: http://whatever/ Django Version: 1.4.1 Python Version: 2.7.2 Installed Applications: ('django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.messages.middleware.MessageMiddleware') Traceback: File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 89. response = middleware_method(request) File "C:\Python27\lib\site-packages\django\contrib\sessions\middleware.py" in process_request 10. engine = import_module(settings.SESSION_ENGINE) File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module 35. __import__(name) File "C:\Python27\lib\site-packages\django\contrib\sessions\backends\cached_db.py" in  6. from django.contrib.sessions.backends.db import SessionStore as DBStore File "C:\Python27\lib\site-packages\django\contrib\sessions\backends\db.py" in  3. from django.db import IntegrityError, transaction, router File "C:\Python27\lib\site-packages\django\db\__init__.py" in  40. backend = load_backend(connection.settings_dict['ENGINE']) File "C:\Python27\lib\site-packages\django\db\__init__.py" in __getattr__ 34. return getattr(connections[DEFAULT_DB_ALIAS], item) File "C:\Python27\lib\site-packages\django\db\utils.py" in __getitem__ 92. backend = load_backend(db['ENGINE']) File "C:\Python27\lib\site-packages\django\db\utils.py" in load_backend 24. return import_module('.base', backend_name) File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module 35. __import__(name) File "C:\Python27\lib\site-packages\django\db\backends\mysql\base.py" in  16. raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) Exception Type: ImproperlyConfigured at / Exception Value: Error loading MySQLdb module: No module named MySQLdb 

Los ajustes para las aplicaciones de sesiones y mensajes son:

 SESSION_ENGINE = "django.contrib.sessions.backends.cached_db" MESSAGE_STORAGE = "django.contrib.messages.storage.cookie.CookieStorage" 

¿Cómo es esto posible?

Related of "django – Error al cargar el módulo MySQLdb: no hay un módulo llamado MySQLdb"

El problema fue que MySQLdb se instaló en mi directorio de inicio C:\Users\alexei\AppData\Roaming\Python\Python27\site-packages\ que no estaba en la ruta de Python. Así que lo desinstalé con pypm uninstall mysql-python y luego lo reinstalé globalmente usando pypm -g install mysql-python (note la opción -g ).

La alternativa es agregar esa ruta a la lista sys.path.append("...path...") en wsgi.py

Entonces, en caso de que alguien más se esté preguntando, puede averiguar dónde está instalado MySQLdb (o cualquier otro módulo) así:

 import MySQLdb print MySQLdb.__file__ 

Asegúrese de que esa ruta esté en la lista de rutas de Python que figura en el mensaje de error de Django.

Si está utilizando y entorno virtual. debes correr

 cd virtualEnvPath pip install MySQL-Python 

No olvides posicionar dentro de tu env virtual. / bin PATH, para usar pip local. ¡SALUDOS!

También me enfrenté a este problema, entonces instalé Python mysql en mi sistema

pip instalar mysql-python

entonces sus trabajos ven esto -> trabajando en mi sistema >>
$ python manage.py syncdb;
Creando tablas …
Creando la tabla django_admin_log
Creando la tabla auth_permission
Creando la tabla auth_group_permissions
Creando la tabla auth_group
………….trabajando

La forma más sencilla es instalar MySQLdb desde binario: http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

Configuré djando w / mysql de la siguiente manera:

1) establece la variable de entorno DJANGO_SETTINGS_MODULE en .bashrc y la fuente

2) cambiar settings.py señalado por este env_var y local_settings.py (si existe) de esta manera (para mysql):

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'DB_NAME', 'USER': 'DB_USER', 'PASSWORD': 'DB_PASSWORD', 'HOST': 'localhost', # Or an IP Address that your DB is hosted on 'PORT': '3306', } } 

3) instale las bibliotecas y los archivos de cabecera de mysql dev, asegúrese de que mysql esté en PATH

 sudo apt-get install libmysqlclient-dev 

4) instala el paquete python para mysql

 sudo pip install MySQL-python 

5) prueba el acceso de django a tu db mysql:

 python manage.py dbshell 

o

 django-admin dbshell 

6) sincronice django a mysql desde dir con su aplicación django

 python manage.py syncdb