miércoles, 31 de marzo de 2010

Python MySQLdb en Solaris 10

Introducción:

Este post va para todos aquellos que tengan problemas con la instalación de MySQLdb la librería para acceder a bases de Datos MySQL desde Python

Requisitos

Tener instalada la herramienta pkgutil de Blastwave

*Tener instalado python2.6

*Tener instalado gcc

*Tener instalado y funcionando correctamente MySQL

* Esto se puede realizar facilmente con la herramienta pkgutil

Antecedentes

Todo usuario curioso vera que existe en el repo de blastwave un paquete llamado algo asi como "pymysql", pues este es nuestro MySQLdb, entonces, Porque no usar ese ??

Pues la verdad no se, : ) , bueno al menos no se porque la gente de blastwave, a mi muy humilde opinión tiene tan descuidados los paquetes que conciernen a python, he tenido problema con la libreria para que apache lea archivos .py ( mod_python ) y con MySQL, lo que he notado es que python se instala en:

/opt/csw/lib/python2.6/
javascript:void(0)
Por consiguiente todas las librerias python deberian estar en:

/opt/csw/lib/python2.6/site-packages

Pues no es así, los paquetes se instalan en:

/opt/csw/lib/python/site-packages

El porque de esto, no los se, y la gente de blastwave no me dio mucha pelota en el IRC, así que ni modo.
No crean tampoco que no agregue dichas carptetas al PYTHONPATH, si lo hice pero creo que me dio errores...

COMPILANDO MySQLdb EN SOLARIS 10

Bueno es muy fácil, bueno ya que te sale lo ves muy fácil:

1. Descargan y descomprimen MySQLdb desde acá


2. Dentro de MySQLdb editan el archivo setup_posix.py

vi setup_posix.py

2.1 Ahi cambian esto:

removable_compile_args = [ compiler_flag(f) for f in "ILl" ]

Por esto:

removable_compile_args = [ compiler_flag(f) for f in "ILlmf" ]


Con esto ya debe compilar e instalar de forma correcta:


python setup.py build
python setup.py install


3. Agregando variables de entorno necesarias


LD_LIBRARY_PATH=/opt/csw/lib
export LD_LIBRARY_PATH


Esto lo deberán agregar a su archivo .profile para evitar futuros problemas

Eso es todo:


Python 2.6.2 (r262:71600, Aug 11 2009, 07:00:48)
[GCC 4.0.2] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> MySQLdb.__version__
'1.2.3c1'
>>>

3 comentarios:

Anónimo dijo...

this was just what i needed after looking for an answere for two days. thanks so much

red dijo...

You are a piece of work my friend.

muchas gracias

Sitting Bull

Adrián dijo...

Una preguntilla (si aún te acuerdas).
Con que compilador/versión compilaste el mysqldb-python?

Me salen un monton de errores cuando intenta compilar el _mysql.c

La máquina donde intento compilar es una sunfire (ultrasparc III)

Gracias!