J'utilise ActiveState Python 3 sous Windows et je voulais me connecter à ma base de données MySQL . J'ai entendu dire que mysqldb
était le module à utiliser . Je ne trouve pas mysqldb
pour Python 3.
Existe-t-il un référentiel disponible où les fichiers binaires existent pour mysqldb
? Comment puis-je me connecter à MySQL dans Python 3 sous Windows?
Il existe actuellement quelques options pour utiliser Python 3 avec mysql:
https://pypi.python.org/pypi/mysql-connector-python
https://pypi.python.org/pypi/pymysql
MySQLdb
, après avoir appelé pymysql.install_as_MySQLdb()
https://pypi.python.org/pypi/cymysql
https://pypi.python.org/pypi/mysqlclient
python-mysqldb
etpython3-mysqldb
.repères ici: https://github.com/methane/mysql-driver-benchmarks
Vous devriez probablement utiliser pymysql - le client MySQL Pure Python.
Il fonctionne avec Python 3.x et n’a aucune dépendance.
Ce client MySQL pur Python fournit une API DB à une base de données MySQL en dialoguant directement avec le serveur via le protocole client/serveur binaire.
Exemple:
import pymysql conn = pymysql.connect(Host='127.0.0.1', unix_socket='/tmp/mysql.sock', user='root', passwd=None, db='mysql') cur = conn.cursor() cur.execute("SELECT Host,User FROM user") for r in cur: print(r) cur.close() conn.close()
J'ai aussi essayé d'utiliser pymysql (sur ma machine Win7 x64, Python 3.3), sans trop de chance. J'ai téléchargé le fichier .tar.gz, extrait, exécuté "setup.py install", et tout semblait aller pour le mieux. Jusqu'à ce que j'essaye de me connecter à une base de données et que je reçois "KeyError [56]". Une erreur que je n'ai pu trouver documentée nulle part.
J'ai donc abandonné le logiciel pymysql et choisi le connecteur Oracle MySQL .
Il s’agit d’un package d’installation qui fonctionne immédiatement. Et cela semble aussi décemment documenté.
si vous voulez d’abord utiliser MySQLdb, vous devez installer pymysql sur votre ordinateur en tapant cmd de windows
pip install pymysql
puis dans Shell en python, tapez
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
db = MySQLdb.connect("localhost" , "root" , "password")
cela établira la connexion.
Non testé, mais certains fichiers binaires sont disponibles sur:
PyMySQL offre également une interface similaire à MySQLDb. Vous pouvez essayer dans votre initialisation:
import pymysql
pymysql.install_as_MySQLdb()
Il existe également un port de mysql-python sur github pour python3.
Résumé
Mysqlclient est la meilleure alternative (IMHO) car il fonctionne parfaitement avec Python 3+, suit les conventions conventions (contrairement à mysql Connector), utilise le nom d'objet mysqldb qui permet le portage pratique de logiciel existant et est utilisé par Django pour les versions Python 3
Existe-t-il un référentiel où les fichiers binaires existent pour mysqldb?
Oui. Mysqlclient vous permet d'utiliser les fonctions de mysqldb. Bien que, rappelez-vous que c'est pas un port direct de mysqldb, mais une construction de mysqlclient
Comment puis-je me connecter à MySQL en Python 3 sous Windows?
pip installer mysqlclient
Exemple
#!/Python36/python
#Please change above path to suit your platform. Am running it on Windows
import MySQLdb
db = MySQLdb.connect(user="my-username",passwd="my-password",Host="localhost",db="my-databasename")
cursor = db.cursor()
cursor.execute("SELECT * from my-table-name")
data=cursor.fetchall()
for row in data :
print (row)
db.close()
Je ne trouve pas mysqldb pour Python 3.
mysqldb n'a pas encore été porté
Sur mon Mac OS Maverick j'essaye ceci:
Dans le type de terminal:
1) mkdir -p ~/bin ~/tmp ~/lib/python3.3 ~/src 2) export TMPDIR = ~/tmp
3) wget -O ~/bin/2to3
4) http://hg.python.org/cpython/raw-file/60c831305e73/Tools/scripts/2to3 5) chmod 700 ~/bin/2to3 6) cd ~/src 7) git clone https://github.com/petehunt/PyMySQL.git 8) cd PyMySQL/
9) python3.3 setup.py install --install-lib = $ HOME/lib/python3.3 -- install-scripts = $ HOME/bin
Après cela, entrez dans l'interpréteur python3 et tapez:
import pymysql. S'il n'y a pas d'erreur votre installation est ok. Pour vérification, écrivez un script pour vous connecter à mysql avec ce formulaire:
# un script simple pour la connexion MySQL importer pymysql db = pymysql.connect (hôte = "localhost", utilisateur = "racine", passwd = " *", db = "biblioteca ") #Sûr, il s'agit de Informations pour mon db # fermer la connexion db.close () *
Donnez-lui un nom ("con.py" par exemple) et enregistrez-le sur le bureau. Dans Terminal, tapez "cd desktop" puis $ Python con.py S'il n'y a pas d'erreur, vous êtes connecté au serveur MySQL. Bonne chance!
Oracle/MySQL fournit un pilote Python DBAPI officiel et pur: http://dev.mysql.com/downloads/connector/python/
Je l'ai utilisé avec Python 3.3 et l'ai trouvé très bien. Fonctionne également avec SQLAlchemy.
Voir aussi cette question: Est-il encore trop tôt pour monter à bord du train Python 3?
Cela ne répond pas complètement à ma question initiale, mais je pense qu'il est important d'informer tout le monde de ce que j'ai fait et pourquoi.
J'ai choisi de continuer à utiliser Python 2.7 au lieu de Python 3 en raison de la prévalence de 2.7 exemples et modules sur le Web en général.
J'utilise maintenant mysqldb et mysql.connector pour me connecter à MySQL en Python 2.7. Les deux sont géniaux et fonctionnent bien. Je pense que mysql.connector est finalement meilleur à long terme cependant.
Ceci est un tutoriel rapide sur la façon de faire fonctionner Python 3.7 avec Mysql
Merci à tous ceux à qui j'ai obtenu des réponses à mes questions
- J'espère que cela aidera quelqu'un un jour.
----------------------------------------------- -----
Mon système:
Version Windows: Pro 64 bits
REQUIREMENTS .. télécharger et installer ces premiers ...
1. Télécharger Xampp ..
https://www.apachefriends.org/download.html
2. Télécharger Python
https://www.python.org/downloads/windows/
--------------
//MÉTHODE
--------------
Installez d'abord xampp une fois l'installation terminée - installez Python 3.7.
Une fois l’installation terminée, redémarrez votre système Windows.
Maintenant, lancez xampp et à partir du panneau de configuration - démarrez le serveur mysql.
Confirmez les versions en ouvrant CMD et dans le type de terminal
c:\>cd c:\xampp\mysql\bin
c:\xampp\mysql\bin>mysql -h localhost -v
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.21-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Ceci est pour vérifier la version de MYSQL
c:\xampp\mysql\bin>python
Python 3.7.0b3 (v3.7.0b3:4e7efa9c6f, Mar 29 2018, 18:42:04) [MSC v.1913 64 bit (AMD64)] on win32
Ceci est pour vérifier la version Python
Maintenant que les deux ont été confirmés, tapez ce qui suit dans le CMD ...
c:\xampp\mysql\bin>pip install pymysql
Une fois l’installation de pymysql terminée.
Créez un nouveau fichier appelé "testconn.py" sur votre bureau ou ailleurs pour un accès rapide.
Ouvrez ce fichier avec sublime ou un autre éditeur de texte et insérez-le.
N'oubliez pas de modifier les paramètres pour refléter votre base de données.
#!/usr/bin/python
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
db = MySQLdb.connect(user="yourusernamehere",passwd="yourpasswordhere",Host="yourhosthere",db="yourdatabasehere")
cursor = db.cursor()
cursor.execute("SELECT * from yourmysqltablehere")
data=cursor.fetchall()
for row in data :
print (row)
db.close()
Maintenant dans votre CMD - tapez
c:\Desktop>testconn.py
Et c'est tout ... votre connexion entre un script python et mysql est maintenant complète ...
Prendre plaisir...
J'utilise cymysql avec python3 sur un Raspberry Pi Je l'ai simplement installé par: Sudo pip3 installe cython Sudo pip3 installe cymysql Où cython n'est pas nécessaire mais devrait rendre cymysql plus rapide
Jusqu'à présent, cela fonctionne comme un charme et très similaire à MySQLdb
CyMySQL https://github.com/nakagami/CyMySQL
J'ai installé pip sur mes fenêtres 7, avec python 3.3 Just Pip installer cymysql
(vous n’avez pas besoin de cython) rapide et sans douleur