mysqlclient python django mysql

mysqlclient - Django no puede encontrar el módulo python de MySQLdb



python django mysql ubuntu (10)

Instalado Django desde la fuente (python setup.py install y similares), instaló MySQLdb desde la fuente (python setup.py build, python setup.py install). Usando Python 2.4 que venía instalado en el sistema operativo (CentOS 5.5). Obteniendo el siguiente mensaje de error después de iniciar el servidor:

Error loading MySQLdb module: No module named MySQLdb

El pythonpath que proporciona la información de depuración incluye

''/usr/lib/python2.4/site-packages''

y sin embargo, si ls ese directorio, puedo ver claramente

MySQL_python-1.2.3-py2.4-linux-i686.egg

Usando el shell interactivo de Python, puedo escribir import MySQLdb y no produce errores. Esto me lleva a creer que es un problema con el pathing de Django, pero no tengo la menor idea de dónde empezar a buscar, ya que soy nuevo en Django y en Python.

EDITAR: Y para ser un poco más específico, todo se está ejecutando actualmente como root. Todavía no he configurado ningún usuario en la máquina, por lo que no existe otro que no sea root.

EDITx2: Y para ser aún más específico, el servidor web es Cherokee y se implementa mediante uWSGI. Todo instalado desde la fuente.


¿Has considerado instalar MySQLdb desde paquetes de python? También recomendaría hacer esto con pip lugar de easy_install .

Primero puedes reemplazar easy_install con pip :

easy_install pip pip install pip --upgrade

Y luego instale Django a través de PIP:

pip install MySQL-python pip install Django

Normalmente, easy_install ya está instalado (parte de setuptools), mientras que pip es mucho mejor. También ofrece opciones de desinstalación y utiliza directorios de instalación planos en lugar de los archivos EGG magic. Esto podría resolver algunas incompatibilidades también.


¿Intentaste construir las dependencias? Esto lo resolvió para mí en Ubuntu:

sudo apt-get build-dep python-mysqldb pip install MySQLdb-python



Esto hizo el truco para mí:

sudo apt-get install python-dev


Intente esto si está utilizando Linux: - sudo apt-get install python-mysqldb

ventanas: - instale python-mysqldb o easy_install python-mysqldb

Espero que esto funcione


Lo que funcionó para mí (Linux Mint):

sudo apt-get install libmysqlclient-dev (this was the key for me) pip install mysql-python pip install django


Puedes averiguar dónde Python está buscando sus bibliotecas invocando "python manage.py shell" desde la base de directorios de tu proyecto Django. Entonces hazlo:

import sys import pprint pprint.pprint(sys.path)

Y verás de dónde saca Python las bibliotecas. También intente hacer un "importar mysql" para ver si está eliminando un error.

Finalmente, la configuración del servicio WSGI está (probablemente) configurada con la configuración de uWSGI en Cherokee; lo siento, no conozco los detalles de esa criatura para hacer sugerencias sobre cómo determinar dónde / cómo se está cargando la ruta de la biblioteca.


Tenía este mismo problema, pero solo era un problema dentro de un virtualenv.

Lo que hice para finalmente arreglarlo fue.

workon [project_name] pip uninstall django pip install mysql-python pip install django

Así que asegúrese de instalar mysql-python antes de que django parezca funcionar.
Esto es en un sistema Ubuntu y usando virtualenv .


en mi caso, Python pudo acceder a mySQL, pero Django (1.6) dio el error: "Error al cargar el módulo MySQLdb: no hay un módulo llamado MySQLdb"

Estoy en un Macbook OSX (Maverick), por cierto.

Cuando traté de correr

pip install mysql-python

Obtuve un error durante la compilación: "clang: error: argumento desconocido: ''-mno-fused-madd'' [-Wunused-command-line-argument-hard-error-in-future]".

Resulta que el problema es un comportamiento actualizado del compilador de cc con el nuevo Xcode 5.1. Cuando hay un parámetro que no reconoce, lo considera como un error fatal y se cierra. La solución para anular este comportamiento se puede encontrar aquí:

http://bruteforce.gr/bypassing-clang-error-unknown-argument.html


pip install mysql-python

Resuelto mi problema :)