Integrando MySQL con Python en Windows

102

Me resulta difícil usar MySQL con Python en mi sistema Windows.

Actualmente estoy usando Python 2.6. He intentado compilar el código fuente de MySQL-python-1.2.3b1 (¿que se supone que funciona para Python 2.6?) Utilizando los scripts de configuración proporcionados. El script de configuración se ejecuta y no informa ningún error, pero no genera el módulo _mysql.

También intenté configurar MySQL para Python 2.5 sin éxito. El problema con el uso de 2.5 es que Python 2.5 está compilado con Visual Studio 2003 (lo instalé usando los binarios provistos). Tengo Visual Studio 2005 en mi sistema Windows. Por lo tanto, setuptools no puede generar el módulo _mysql.

Alguna ayuda ?

Sammy
fuente
2
Ya que han pasado 3 años desde que se preguntó esto, y 2 años desde la última respuesta votada más alta, vea la respuesta actualizada para Python 3.2 a continuación (o consulte wiki.python.org/moin/MySQL )
Eran Medan

Respuestas:

127

Página de descarga de python-mysqldb . La página incluye binarios para las versiones de 32 y 64 bits de Python 2.5, 2.6 y 2.7.

También hay una discusión sobre cómo deshacerse de la advertencia de obsolescencia .

ACTUALIZACIÓN : Esta es una respuesta antigua. Actualmente, recomendaría usar PyMySQL. Es python puro, por lo que es compatible con todos los sistemas operativos por igual, es casi un reemplazo directo de mysqldb y también funciona con python 3. La mejor manera de instalarlo es usando pip. Puede instalarlo desde aquí (más instrucciones aquí ) y luego ejecutar:

pip install pymysql
itsadok
fuente
¿Alguien puede confirmar que el primer ejecutable vinculado funciona con Python 2.6? La pantalla de presentación de la instalación dice que es solo 2.5, pero supongo que la persona que lo construyó puede que no haya actualizado esa línea de documentación.
John C
Instalé Python 2.7 x64 pero al importar MySQLdb obtengo el error 'ImportError: No module named _mysql_windows.api'. Por favor, alguien me ayude a resolver este problema.
Vilva
4
Bueno, después de hacerlo pip install pymysql, syncdbtodavía se queja del MySQLdbmódulo que falta .
Shailen
mientras ejecuto este comando en mi sistema Windows 8.1 de 64 bits, muestra: Traceback (última llamada más reciente): Archivo "C: \ Python33 \ Scripts \ pip-script.py", línea 5, en <módulo> desde pkg_resources import load_entry_point ImportError: Ningún módulo llamado 'pkg_resources'
hizbul25
@shailenTJ (y cualquier persona con un problema similar) mire aquí
itsadok
31

Esto puede parecer que su abuelo dio un consejo, pero todas las respuestas aquí no mencionaron la mejor manera: vaya e instale ActivePython en lugar de los binarios de Windows de python.org. Realmente me pregunté durante mucho tiempo por qué el desarrollo de Python en Windows era tan sencillo, hasta que instalé activestate python. No estoy afiliado a ellos. Es la pura verdad. Escríbalo en cada muro: desarrollo de Python en Windows = ActiveState ! entonces solo pypm install mysql-pythony todo funciona sin problemas. no compilar orgía. sin errores extraños. sin terror. Simplemente comience a codificar y a hacer un trabajo real después de cinco minutos. Esta es la única forma de hacerlo en Windows. De Verdad.

Gorgonzola Balistico Refurbo B
fuente
2
Sería una solución perfecta si no fuera necesaria una suscripción a Business Edition ...
Matheus Moreira
4
@ matheus.emm - Business Edition no es necesario para instalar MySQLdb en Windows de 32 bits.
Sridhar Ratnakumar
7
@ matheus.emm: para acceso gratuito, puede instalar ActivePython de 32 bits en su sistema operativo Windows 7 de 64 bits y luego instalar mysql-python. ActivePython de 64 bits requiere una suscripción a BE para instalar paquetes.
Sridhar Ratnakumar
2
Este es un gran consejo. Creo que la Business Edition vale la pena si está utilizando Python en producción. Si le ahorra algunas horas de trabajo al mes, se amortiza solo. Todos estos problemas de configuración me hacen recordar el modelo de negocio de código abierto: "Dales el software gratis, pero haz que sea tan difícil de instalar y usar que necesiten comprar el manual y / o soporte". El único problema es que muchos de estos proyectos no brindan ni venden soporte porque ven el código abierto como una ideología en lugar de lo que se pretendía que fuera, un modelo de negocio. lolz
Dana Holt
1
Simplemente lo instalé usando la edición de la comunidad activepython y funcionó como un encanto. Muy recomendable
Cleber Goncalves
15

Como principiante de Python que está aprendiendo el ecosistema de Python, acabo de completar esto.

  1. Instrucciones de instalación de setuptools

  2. Instale MySQL 5.1. Descargue el MSI de 97.6MB desde aquí. No puede usar la versión Essentials porque no contiene las bibliotecas C.
    Asegúrese de seleccionar una instalación personalizada y marque las herramientas / bibliotecas de desarrollo para la instalación, ya que no se realiza de forma predeterminada. Esto es necesario para obtener los archivos de encabezado C.
    Puede verificar que ha hecho esto correctamente buscando en su directorio de instalación una carpeta llamada "incluir". Por ejemplo, C: \ Archivos de programa \ MySQL \ MySQL Server 5.1 \ include. Debería tener un montón de archivos .h.

  3. Instale Microsoft Visual Studio C ++ Express 2008 desde aquí. Esto es necesario para obtener un compilador de C.

  4. Abra una línea de comando como administrador (haga clic derecho en el acceso directo Cmd y luego "ejecutar como administrador". Asegúrese de abrir una nueva ventana después de haber instalado esas cosas o su ruta no se actualizará y la instalación aún fallará.

  5. Desde el símbolo del sistema:

    easy_install -b C: \ temp \ sometempdir mysql-python

    Eso fallará, lo cual está bien.

    Ahora abra site.cfg en su directorio temporal C: \ temp \ sometempdir y edite la configuración de "clave_registro" a:

    clave_registro = SOFTWARE \ MySQL AB \ MySQL Server 5.1

    ahora CD en su directorio temporal y:

    Python setup.py limpio

    instalación de python setup.py

    ¡Deberías estar listo para rockear!

  6. Aquí hay un script súper simple para comenzar a aprender la API de Python DB por usted, si lo necesita.

Comunidad
fuente
7

Encontré una ubicación donde una persona había construido con éxito mysql para python2.6, compartiendo el enlace, http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

... es posible que vea una advertencia al importar MySQLdb, lo cual está bien y no dañará nada,

C: \ Python26 \ lib \ site-packages \ MySQLdb__init __. Py: 34: DeprecationWarning: el módulo sets está obsoleto de la importación de sets ImmutableSet


fuente
5

¿Qué pasa con pymysql ? Es Python puro y lo he usado en Windows con considerable éxito, evitando las dificultades de compilar e instalar mysql-python.

JasonFruit
fuente
2

Puede intentar utilizar myPySQL. Es realmente fácil de usar; no hay compilación para Windows, e incluso si necesita compilarlo por cualquier motivo, solo necesita tener instalado Python y Visual C (no mysql).

http://code.google.com/p/mypysql/

Buena suerte

Gustavo Vargas
fuente
1

Debido a que estoy ejecutando Python en un virtualenv (pilones / pirámide), no pude ejecutar los instaladores binarios (útilmente) vinculados anteriormente.

Tuve problemas para seguir los pasos con la respuesta de Willie, pero determiné que el problema es (probablemente) que estoy ejecutando la instalación de Windows 7 x64, que coloca la clave de registro para mysql en una ubicación ligeramente diferente, específicamente en mi caso (nota: estoy ejecutando la versión 5.5) en: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5".

SIN EMBARGO, "HKEY_LOCAL_MACHINE \" no se puede incluir en la ruta o fallará.

Además, tuve que reiniciar entre los pasos 3 y 4.

Después de trabajar con todo esto, en mi opinión, habría sido más inteligente ejecutar todo el entorno de desarrollo de Python desde cygwin.

Evan
fuente
0

Es posible que desee considerar también hacer uso de Cygwin , tiene bibliotecas mysql python en el repositorio.

lfaraone
fuente
0

También puede usar pyodbc con MySQL Connector / ODBC para usar MySQL en Windows. Unixodbc también está disponible para hacer que el código sea compatible en Linux. Pyodbc utiliza el estándar Python DB API 2.0, por lo que si sigue con ese cambio entre los controladores MySQL / PostgreSQL / SQLite / ODBC / JDBC, etc., debería ser relativamente sencillo.

fijiaaron
fuente
0

Me cansé de los problemas de instalación con MySQLdb y probé pymysql en su lugar.

Configuración fácil;

git clone https://github.com/petehunt/PyMySQL.git
python setup.py install

Y las API son prácticamente iguales.

Daniel Magnusson
fuente