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!

Scrobbling de last.fm desde Chrome

last.fmSi escuchamos mucha música es probable que nos guste seguir nuestras propias tendencias: saber qué hemos escuchado más en el pasado, qué grupos nuevos o canciones nos podrían gustar (gracias a recomendaciones). En definitiva, guardar un histórico de la música que escuchamos con algún fin.

Cuando utilizaba Spotify, y dado que había sido ferviente usuaria en el pasado de last.fm, seguí registrando las canciones que escuchaba gracias a la opción de spotify de hacer «scrobbling en last.fm«.

Recientemente me pasé a Google Music y perdí esta opción. Al menos no era tan sencillo como activar el Scrobbling de last.fm en una pestaña de Spotify.

Pero por suerte existe una solución bastante sencilla para ello. El único requisito es que usemos el navegador Google Chrome y que instalemos el plugin o extensión Last.fm Scrobbler. Lo podéis encontrar en la página de Last.fm Scrobbler de la tienda Chrome Web Store.

Una vez instalado, configuramos nuestro usuario de last.fm, que si no tenemos tendremos que crearnos. Y una vez hecho esto se empezarán a registrar las canciones que escuchemos.

Este plugin puede hacer Scrobbling de muchos servicios de música online, tales como:

  • Amazon
  • Google Play Music
  • Grooveshark
  • MySpace
  • Pandora
  • Spotify
  • YouTube

En la versión 1.17 soporta más de 30 fuentes diferentes de música y vídeo. Además permite el uso de notificaciones de escritorio, para que sepamos qué canción suena en cada momento (esta opción la tengo desactivada, que me parece un poco intrusiva).

Espero que os haya servido. Si tenéis cualquier duda o pregunta podéis dejar un comentario.