Problemas con MYSQLdb

empiezo a entender el problema de porqué no me va django en mi hosting

El problema radica en la librería mysqldb que mi hosting no la tiene instalada y yo no tengo permisos de root para instalarla, mi idea era coger el deb, de compilarlo y copiarlo tal cual en mi home /home/raskalakabra/usr/...


Pero django cuando hace import MySQLdb hace también un import _mysql , eso parece ser, que llama a la librería _mysql.os que yo la tengo situada en
/home/raskalakabra/usr/lib/python2.4/site-packages/ donde tambien está la librería libmysqlclient_r.so.15 .


Pues el import no lo hace bien a que me da el error
ImportError: libmysqlclient_r.so.15: cannot open shared object file: No such file or directory

Ya he probado a usar os.enviroment y sys.path pero nada. ¿ alguna idea?
si existiese alguna forma de hacerlo todo en mi home

6 comentarios:

  1. ¿No puedes usar virtualenv? Eso te permitiría instalar cualquier paquete ahí dentro.

    En todo caso olvídate del .deb. Bastaría con que te bajes el paquete, y que lo añadas a tu proyecto (o al PYTHON_PATH)
    http://sourceforge.net/projects/mysql-python/

    Para testear si funciona, haz algo tipo:
    python -c "import MySQLdb; print MySQLdb.version_info"

    Si no lo consigues, de momento puedes usar sqlite (django lo soporta "out of the box") para ir tirando.

    Finalmente... ¿qué coño de hosting no tiene instalado el mysql por defecto? :-/

    ResponderEliminar
  2. David, el mysql lo tiene pero el mysqldb no. Por lo que he averiguado es una máquina de 64 bits y usa python 2.4 . Supongo que si pregunto a los del hosting los mismo lo instalan y todo pero yo quería ver hasta donde puedo llegar con mi home :)

    ResponderEliminar
  3. Lo de bajarme el paquete tampoco funciona _mysql no viene compilado y tengo que compilarlo para una máquina de 64 bits y la mía es de 32. Si lo pongo en el servidor y ejecuto python setup.py build para compilarlo allí me dice que ImportError: No module named setuptools

    Así que este camino tampoco funciona.
    Mañana ya probaré lo de virtualenv , pero me da a mi que tampoco me va a ir. Por cierto mi host es Hostinet.

    ResponderEliminar
  4. ¿Tampoco trae setuptools? :-/

    Sin setuptools no vas a poder usar easy_install ni pip. Instalarlo todo a mano no es práctico.

    python2.4 es bastante antiguo. Y que no traiga mysqldb... ¿qué distribución están usando? ¿No te podrían dar algo más "nuevo"?

    Para encontras hostings "amables" con django echa un vistazo a http://djangofriendly.com/hosts/

    ResponderEliminar
  5. David,Ya estuve mirando esos sitios, pero es que este lo tengo hace ya (plan joven o algo así creo recordar) y quería darle un uso, hablaré con ellos a ver si por lo menos ponen el mysqldb y si no pues aprenderé a usar un framework php , ¿ se te ocurre alguno tan bueno como django pero en php ?

    ResponderEliminar
  6. Tan bueno como django no, pero hay algunos parecidos.
    Como frameworks genéricos, cakephp o symfony.
    Como CMS extensibles, drupal o joomla.

    Respecto a tu hosting:
    - ¿por qué no pruebas sqlite o postgres? Si la app es un blog, con el primero vas de sobra. Si vas a tener millones de filas, entonces necesitarás postgres.
    - si te instalasen virtualenv, podrías crearte entornos virtuales donde instalar cualquier paquete que necesites, sin requerir permiso de root.

    PD: maldito captcha

    ResponderEliminar