Intégration de MySQL avec Python dans Windows

102

J'ai du mal à utiliser MySQL avec Python dans mon système Windows.

J'utilise actuellement Python 2.6. J'ai essayé de compiler le code source de MySQL-python-1.2.3b1 (qui est censé fonctionner pour Python 2.6?) En utilisant les scripts de configuration fournis. Le script d'installation s'exécute et ne signale aucune erreur, mais il ne génère pas de module _mysql.

J'ai également essayé de configurer MySQL pour Python 2.5 sans succès. Le problème avec l'utilisation de 2.5 est que Python 2.5 est compilé avec Visual Studio 2003 (je l'ai installé en utilisant les binaires fournis). J'ai Visual Studio 2005 sur mon système Windows. Par conséquent, setuptools ne parvient pas à générer le module _mysql.

De l'aide ?

Sammy
la source
2
Depuis 3 ans se sont écoulés depuis que cela a été demandé, et 2 ans depuis la dernière réponse aux votes élevés, voir la réponse mise à jour pour Python 3.2 ci-dessous (ou voir wiki.python.org/moin/MySQL )
Eran Medan

Réponses:

127

Page de téléchargement pour python-mysqldb . La page comprend des binaires pour les versions 32 et 64 bits de pour Python 2.5, 2.6 et 2.7.

Il y a également une discussion sur la suppression de l'avertissement d'obsolescence .

MISE À JOUR : C'est une vieille réponse. Actuellement, je recommanderais d'utiliser PyMySQL. C'est du python pur, donc il supporte tous les OS de la même manière, c'est presque un remplacement de mysqldb, et il fonctionne aussi avec python 3. La meilleure façon de l'installer est d'utiliser pip. Vous pouvez l'installer à partir d' ici (plus d'instructions ici ), puis exécuter:

pip install pymysql
Itsadok
la source
Quelqu'un peut-il confirmer que le premier exécutable lié fonctionne avec Python 2.6? L'écran de démarrage de l'installation indique que c'est seulement 2.5 - mais je suppose que la personne qui l'a construit n'a peut-être tout simplement pas mis à jour cette ligne de documentation.
John C
J'ai installé python 2.7 x64 mais lors de l'importation de MySQLdb, j'obtiens l'erreur 'ImportError: No module named _mysql_windows.api'. pls n'importe qui m'aide à résoudre ce problème.
Vilva
4
Eh bien, après avoir fait pip install pymysql, syncdbse plaignait toujours du MySQLdbmodule manquant .
Shailen
pendant que j'exécute cette commande dans mon système Windows 8.1 64 bits, elle montre: Traceback (dernier appel le plus récent): Fichier "C: \ Python33 \ Scripts \ pip-script.py", ligne 5, dans <module> de pkg_resources import load_entry_point ImportError: Aucun module nommé 'pkg_resources'
hizbul25
@shailenTJ (et toute personne ayant un problème similaire) regarde ici
itsadok
31

Cela peut ressembler à des conseils de votre grand-père, mais toutes les réponses ici ne mentionnent pas la meilleure façon: allez et installez ActivePython au lieu des binaires Windows de python.org. Je me demandais vraiment depuis longtemps pourquoi le développement de Python sur Windows était si compliqué - jusqu'à ce que j'installe activestate python. Je ne suis pas affilié à eux. C'est juste la pure vérité. Écrivez-le sur tous les murs: développement Python sous Windows = ActiveState ! vous alors juste pypm install mysql-pythonet tout fonctionne bien. pas de compilation orgie. pas d'erreurs étranges. pas de terreur. Commencez simplement à coder et à faire du vrai travail après cinq minutes. C'est la seule façon d'aller sur Windows. Vraiment.

Gorgonzola Balistico Refurbo B
la source
2
Ce serait une solution parfaite si un abonnement Business Edition n'était pas nécessaire ...
Matheus Moreira
4
@ matheus.emm - Business Edition n'est pas nécessaire pour installer MySQLdb sur Windows 32 bits.
Sridhar Ratnakumar
7
@ matheus.emm - Pour un accès gratuit, vous pouvez installer ActivePython 32 bits sur votre système d'exploitation Windows 7 64 bits, puis installer mysql-python. ActivePython 64 bits nécessite un abonnement BE pour l'installation des packages.
Sridhar Ratnakumar
2
C'est un excellent conseil. Je pense que l'édition Business en vaut la peine si vous utilisez sérieusement Python en production. Si cela vous fait gagner quelques heures de travail par mois, il est rentable. Tous ces maux de tête de configuration me rappellent le modèle commercial open source: "Donnez-leur le logiciel gratuitement, mais rendez-le si difficile à installer et à utiliser dont ils ont besoin pour acheter le manuel et / ou le support." Le seul problème est que bon nombre de ces projets ne fournissent ni ne vendent de support, car ils considèrent l'open source comme une idéologie au lieu de ce qu'il était censé être, un modèle commercial. lolz
Dana Holt
1
Je viens de l'installer en utilisant l'édition communautaire activepython et cela a fonctionné comme un charme. Fortement recommandé
Cleber Goncalves
15

En tant que débutant en Python apprenant l'écosystème Python, je viens de terminer cela.

  1. Installer les instructions de setuptools

  2. Installez MySQL 5.1. Téléchargez le MSI 97,6 Mo à partir d' ici. Vous ne pouvez pas utiliser la version Essentials car elle ne contient pas les bibliothèques C.
    Veillez à sélectionner une installation personnalisée et marquez les outils / bibliothèques de développement pour l'installation car cela n'est pas fait par défaut. Ceci est nécessaire pour obtenir les fichiers d'en-tête C.
    Vous pouvez vérifier que vous avez fait cela correctement en recherchant dans votre répertoire d'installation un dossier nommé "include". EG C: \ Program Files \ MySQL \ MySQL Server 5.1 \ include. Il devrait contenir tout un tas de fichiers .h.

  3. Installez Microsoft Visual Studio C ++ Express 2008 à partir d' ici. Ceci est nécessaire pour obtenir un compilateur C.

  4. Ouvrez une ligne de commande en tant qu'administrateur (faites un clic droit sur le raccourci Cmd puis "Exécuter en tant qu'administrateur". Assurez-vous d'ouvrir une nouvelle fenêtre après avoir installé ces choses ou votre chemin ne sera pas mis à jour et l'installation échouera toujours.

  5. À partir de l'invite de commande:

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

    Cela échouera - ce qui est OK.

    Ouvrez maintenant site.cfg dans votre répertoire temporaire C: \ temp \ someempdir et modifiez le paramètre "registry_key" sur:

    Registry_key = SOFTWARE \ MySQL AB \ MySQL Server 5.1

    maintenant CD dans votre répertoire temporaire et:

    python setup.py nettoyer

    installation de python setup.py

    Vous devriez être prêt à basculer!

  6. Voici un script super simple pour commencer à apprendre l'API Python DB pour vous - si vous en avez besoin.

Communauté
la source
7

J'ai trouvé un emplacement où une personne avait construit avec succès mysql pour python2.6, partageant le lien, http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

... vous pourriez voir un avertissement lors de l'importation de MySQLdb, ce qui est bien et cela ne fera aucun mal,

C: \ Python26 \ lib \ site-packages \ MySQLdb__init __. Py: 34: DeprecationWarning: le module sets est obsolète depuis les sets import ImmutableSet


la source
5

Et pymysql ? C'est du pur Python, et je l'ai utilisé sous Windows avec un succès considérable, en contournant les difficultés de compilation et d'installation de mysql-python.

JasonFruit
la source
2

Les binaires précompilés sur http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python fonctionnent juste pour moi.

  1. Ouvrez le MySQL_python-1.2.5-cp27-none-win_amd64.whlfichier avec le programme d'extraction de zip.
  2. Copiez le contenu dans C:\Python27\Lib\site-packages\
guneysus
la source
2

Vous pouvez essayer d'utiliser myPySQL. C'est vraiment facile à utiliser; pas de compilation pour Windows, et même si vous avez besoin de le compiler pour une raison quelconque, vous n'avez besoin que de Python et Visual C installés (pas mysql).

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

Bonne chance

Gustavo Vargas
la source
1

Parce que j'exécute python dans un virtualenv (pylônes / pyramide), je n'ai pas pu exécuter les programmes d'installation binaires (utilement) liés précédemment.

J'ai eu des problèmes en suivant les étapes avec la réponse de Willie, mais j'ai déterminé que le problème est (probablement) que j'exécute l'installation de Windows 7 x64, ce qui place la clé de registre pour mysql dans un emplacement légèrement différent, en particulier dans mon cas (note: je J'utilise la version 5.5) dans: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5".

CEPENDANT, "HKEY_LOCAL_MACHINE \" ne peut pas être inclus dans le chemin ou il échouera.

De plus, j'ai dû faire un redémarrage entre les étapes 3 et 4.

Après avoir travaillé sur tout cela, l'OMI, il aurait été plus intelligent d'exécuter l'ensemble de l'environnement de développement python à partir de cygwin.

Evan
la source
0

Vous pouvez également envisager d'utiliser Cygwin , il a des bibliothèques mysql python dans le référentiel.

lfaraone
la source
0

Vous pouvez également utiliser pyodbc avec le connecteur MySQL / ODBC pour utiliser MySQL sous Windows. Unixodbc est également disponible pour rendre le code compatible sous Linux. Pyodbc utilise l' API Python DB 2.0 standard, donc si vous vous en tenez à cela, la commutation entre les pilotes MySQL / PostgreSQL / SQLite / ODBC / JDBC, etc. devrait être relativement simple.

fijiaaron
la source
0

J'en ai marre des problèmes d'installation avec MySQLdb et j'ai essayé pymysql à la place.

Installation facile;

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

Et les API sont à peu près les mêmes.

Daniel Magnusson
la source