Desafortunadamente, realmente no hay una solución trivial en este momento. Si necesita usar MySQL con Python, la solución más simple y confiable en OS X es instalar todo:Python, MySQLdb, cualquier otro paquete de Python de terceros necesario, bibliotecas cliente de MySQL y, si es necesario, bibliotecas y utilidades de servidor MySQL. - utilizando un sistema de gestión de paquetes, como MacPorts . Intentar instalar los diversos componentes de diferentes fuentes con frecuencia se encuentra con problemas con archivos ejecutables y bibliotecas creados por incompatibilidad:32 bits frente a 64 bits, diferentes ABI (10.3 frente a 10.6), etc.
Para un sistema con Xcode y el sistema base MacPorts instalado, puede compilar e instalar todo con un solo comando:
sudo port install py27-mysql
Si también necesita el servidor MySQL:
sudo port install py27-mysql mysql5-server
Todos los ejecutables instalados en MacPorts se instalarán de forma predeterminada en /opt/local
, por lo que solo necesita ejecutar las cosas desde allí:
/opt/local/bin/python2.7
Para que sea más fácil para sus usuarios, debería poder usar MacPorts para crear el conjunto de puertos necesarios como archivos binarios y configurar un script para instalar el sistema base de MacPorts y luego sus paquetes prediseñados. Hay información sobre esto en la Guía MacPorts aquí
. Sin embargo, mucho de eso está desactualizado para MacPorts 2.0.x. Hasta que se actualice la Guía, hay información que comienza aquí . El enfoque más seguro sería crear un conjunto diferente de paquetes para cada versión de OS X admitida. podría Sería posible crear un conjunto compatible hacia arriba en el sistema más antiguo necesario:por ejemplo, crear paquetes en 10.5 que también funcionarían en los sistemas 10.6 y 10.7. Para evitar interferencias con las instalaciones de MacPorts del cliente, también puede compilar el sistema base de MacPorts desde la fuente y cambiar la raíz de la instalación a algo que no sea /opt/local
.
Un enfoque más idiomático en OS X sería usar py2app para crear un paquete de aplicaciones que incluya Python y las bibliotecas cliente de MySQL. No sé si alguien lo ha hecho con éxito.
Otra sugerencia:si realmente no necesita un servidor remoto, considere usar SQLite en su lugar. Compatibilidad con SQLite está incluido en la biblioteca estándar de Python.