MySQL, Python, MacOSX Mountain Lion y sus problemas

Muy buenas a todos,

En esta entrada voy a hablar de una vendetta personal que tengo contra python: MySQL. No entiendo muy bien por qué siempre acabo teniendo problemas para instalar el conector y, como unas cuantas entradas más, esta es la solución que he encontrado por si alguien se encuentra en mi misma situación (incluido yo mismo).

Para ello partiremos de dos supuestos: el primero, que somos unos destroyers sin entornos virtuales y el segundo que no lo somos y tenemos cada entorno del proyecto en un entorno virtual aparte.

Sin entornos virtuales

Tanto si eres un amante del efecto dominó de la actualización de la librería X_v0.9.11 (sí, Tastypie, te estoy mirando a ti) como si sólo tienes un proyecto o directamente no te apetece configurar entornos virtuales, habrás llegado a un punto donde no hay manera de que se instale el puñetero mysql-python a golpe de pip en tu flamante MacOSX Mountain Lion. No desesperes y prueba esta otra receta a ver qué tal te va:

Primero debemos añadir al PATH de la consola el directorio de instalación de MySQL. Para ello editamos el fichero $HOME/.bash_profile añadiendo la siguiente línea:

export PATH=/usr/local/mysql/bin:$PATH

En nuestro caso la ruta es /usr/local/mysql/bin, así que echad un ojo por si acaso no es así y está instalado en cualquier otra ruta).

Segundo, para que no falle la instalación con pip, hay que enlazar el directorio de lib de MySQL así como la librería dinámica:

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

De nuevo, hay que echar un ojo a las rutas para asegurarnos de que sean correctas. Finalmente, instalamos el módulo con pip:

pip install mysql-python

Y rezamos para que no nos dé de nuevo el temido error de mysql-config not found. Si algo ha salido raro, ahí están los comentarios para contar vuestros casos. Así, entre todos intentaremos solucionarlos.

Con entornos virtuales

Realmente habiendo hecho el cambio anterior, la instalación desde la línea de comandos en un entorno virtual debería funcionar exactamente igual. Sin embargo, si como es mi caso, usáis como entorno de desarrollo PyCharm os encontraréis con que no funciona, saliendo el mensaje del terror, mysql-config not found. Por lo que me he encontrado parece que al usar un entorno virtual por alguna razón no coge bien el PATH (por favor, si alguien sabe por qué que nos ilumine).

La solución que hemos encontrado es la de la edición del script de arranque del entorno virtual. Esto es, si tenemos el entorno virtual bajo la ruta ~/.venvs/virtual/, habrá que editar el fichero ~/.venvs/virtual/bin/activate, localizando las siguientes líneas:

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH

Y modificándolas para que queden como sigue:

_OLD_VIRTUAL_PATH="$PATH"
PATH="$PATH:/usr/local/mysql/bin/"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH

Una vez hecho esto existen dos opciones, o reiniciar PyCharm e intentar instalar desde el propio entorno o bien entrar en el entorno virtual e instalar mysql-python a golpe de pip:

source ~/.venvs/virtual/bin/activate
pip install mysql-python
deactivate

Y eso es todo por hoy. Cualquier duda, aclaración o lo que queráis, ahí están los comentarios. Cualquier modificación o mejora es bienvenida. Buen día!

1 opinión en “MySQL, Python, MacOSX Mountain Lion y sus problemas”

  1. Gracias Barty!

    En mi caso no encontraba el archivo mysql_config durante la instalación. Solo con cambiarle el PATH instaló sin problemas:
    export PATH=/usr/local/mysql/bin:$PATH
    sudo pip install MySQL-python
    Successfully installed MySQL-python
    Cleaning up…

    Gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *