2009-04-21 16 views
5

Estoy buscando usar Django en un host compartido que ejecuta una versión desconocida de CentOS. Mi principal problema es tratar de interactuar con una base de datos. El servidor tiene MySQL instalado, pero no MySQL-python. Inicialmente pensé en sugerir ejecutar "yum install MySQL-python", pero aparentemente la versión de MySQL-python que está en los repositorios por defecto para CentOS es 1.2.1, y Django requiere 1.2.1p2.Django en CentOS

Este requisito primero comenzó con Django 0.96. En el release notes, se agregó una interfaz obsoleta llamada mysql_old para compatibilidad con versiones anteriores de MySQL-python. El pasado julio, esta interfaz en desuso fue sin ceremonias dropped. El announcement de este cambio no indica un motivo distinto de que era antiguo.

¿Es posible resucitar esta interfaz antigua en Django 1.1? ¿Ha habido algún cambio en la interfaz de la base de datos desde entonces? ¿Cuál sería el peligro de forzar a Django a omitir la verificación de versión y el uso de 1.2.1? ¿Es posible compilar una versión posterior en otra máquina y copiar los archivos en el host? ¿Qué necesitaría saber para hacer eso?

También busqué en SQLite, pero CentOS viene con Python 2.4.3, y por lo tanto requeriría la extensión pysqlite2, que (afaict) no existe en el repositorio.

Todo podría resolverse simplemente instalando desde la fuente, pero eso es bastante desordenado y tengo muchas menos posibilidades de convencer a la empresa de que haga que instalar algo del repositorio. Me doy cuenta de que parece que debería obtener un host diferente, pero tendrás que confiar en mí, tengo mis razones para intentar que esto funcione.

nota: no tengo ninguna experiencia con CentOS o yum, por lo que todo lo que he dicho sobre ellos es una suposición informada. Por favor, avíseme si todo lo que necesito hacer es especificar algunas configuraciones o cambiar repositorios para obtener las versiones actualizadas de estos paquetes. Gracias.

+0

no tengo permiso para ejecutar yum me temo, y don No sé si gcc está instalado. ¿Conoces una manera de compilar MySQL-python en otra máquina y copiarlo en algún lugar en sys.path de Python en el host? –

+0

Si tiene suficientes permisos para ejecutar yum, debería poder compilar cualquier versión arbitraria de mysql-python que desee descargándola y utilizando 'python setup.py install' (configurándola si es necesario para las ubicaciones de las bibliotecas de mysql). Si gcc no está instalado, use yum para instalarlo. Si está instalada la versión incorrecta de python (etc), use yum o gcc para reemplazar toda la pila según sea necesario :-) Pruebe 'cat/etc/issue' para averiguar qué versión de CentOS tiene. –

+0

Intente escribir gcc para ver si está instalado –

Respuesta

0

Puede instalar manualmente los adaptadores mysql-python sin compilar nada, si no puede obtener un paquete reciente de los repositorios de centos. Simplemente descargue el tarball mysql-python (del sitio sourceforge). En la bola de alquitrán hay todo tipo de scripts de configuración, archivos léame, etc. Puede ejecutar el archivo ez_setup, el archivo de instalación o simplemente copiar el directorio MySQLdb en algún lugar de su ruta de acceso de Python. Creo que en centos /usr/lib/python2.4/site-packages/ funciona.

¡Buena suerte!

+0

Lo intenté al principio, pero MySQLdb necesita un controlador de bajo nivel que debe ser compilado. Sin embargo, compilarlo en una VM y copiarlo en mi host parece haber hecho el truco. –

0

Puede instalar CentOS' paquete python-setuptools y luego utilizando easy-install en ella se puede instalar la última versión de mysql-python como esto

easy_install mysql-python 
+1

esto solo funciona si ya tiene instalados los requisitos previos (encabezados de compilación para python y mysql). –