sql >> Base de Datos >  >> RDS >> Mysql

mysql-python:¿construir un _mysql.so completamente independiente en Mac OS X?

No importa, lo descubrí yo mismo después de un poco más de excavación. Es bastante simple, en realidad; Registraré la solución aquí en caso de que alguien más la necesite:

  1. Obtenga el tarball fuente de MySQL de mysql.com (no el tarball binario específico de la plataforma)

  2. Descomprímalo, ejecuta ./configure con las opciones que se adapten a sus propósitos, pero necesitará --enable-static . Solo para estar seguro, incluí --disable-shared , aunque puede que no sea estrictamente necesario. Usé lo siguiente, el tuyo puede diferir en otros aspectos:

    (Con respecto a los parámetros del juego de caracteres y la intercalación aquí:pueden ser completamente innecesarios en este caso de uso, ya que voy a eliminar MySQL después, pero dado que todas las conexiones del cliente usan algún juego de caracteres/intercalación, estoy cubriendo mis bases UTF-8 -sabio en caso de que el conjunto de caracteres/intercalación predeterminado utilizado por MySQLdb se vea afectado por cómo _mysql.so está compilado, hombres más sabios que yo pueden querer confirmar esto de una forma u otra).

  3. Obtenga el tarball fuente más reciente de mysql-python de http://pypi.python.org/pypi /MySQL-python

  4. Descomprímalo y en site.cfg establecer static = True y mysql_config = /usr/local/mysql-src/bin/mysql_config (o cualquier ruta que elija durante configure ).

  5. Ejecute python setup.py build . Algunos errores relacionados con la arquitectura pueden aparecer al final de la compilación, pero se pueden ignorar.

  6. Ejecute sudo python setup.by install . Esto crea un .egg en sus site-packages y lo agrega al archivo easy_install.pth.

  7. ¡Ya terminaste! Ahora puede eliminar todos los rastros de MySQL, así como las fuentes de mysql-python. El huevo se puede copiar tal cual a otras Mac que ejecutan la misma versión de OS X. Estoy felizmente copiándolo a varios entornos virtuales creados con virtualenv mientras hablamos.

Esto funcionó en 10.5, lo probaré en 10.6 pronto y, si es necesario hacer algo diferente, informe los resultados aquí.