MySQLdb est un fin wrapper python autour du module C qui implémente l'API pour la base de données MySQL.
Il y avait une version MySQLDb1 de wrapper utilisée il y a quelque temps et maintenant il est considéré comme un héritage. Alors que MySQLDb1 a commencé à évoluer vers MySQLDb2 avec des corrections de bogues et le support de Python3, un MySQLDb1 a été forké et voici comment mysqlclient est apparu, avec des corrections de bogues et le support de Python3. En résumé, nous avons maintenant MySQLDb2 qui n'est pas prêt pour une utilisation en production, MySQLDb1 comme pilote obsolète et un mysqlclient pris en charge par la communauté avec des corrections de bogues et le support de Python3.
Désormais, pour résoudre ce problème, MySQL fournit sa propre version de l'adaptateur MySQL - le connecteur mysql , un module python tout-en-un qui utilise l'API MySQL sans dépendances de modules C et uniquement des modules python standard utilisés.
Alors maintenant, la question se résume à: mysqlclient vs connecteur mysql.
Quant à moi, j'irais avec une bibliothèque officiellement prise en charge, mais mysqlclient
devrait également être un bon choix. Les deux sont activement mis à jour avec des correctifs et de nouvelles fonctionnalités que vous pouvez voir par des commits actifs ces derniers jours.
Remarque: je n'avais pas beaucoup d'expérience avec eux, il peut donc y avoir des cas où l'un ou l'autre ne répond pas à vos besoins. Les deux bibliothèques suivent la norme PEP-249 , ce qui signifie que vous devriez être d'accord avec au moins les fonctionnalités de base partout.
Installation et dépendances
En tant que fork du wrapper C, il nécessite des modules C pour fonctionner avec MySQL qui ajoute des fichiers d'en-tête python pour construire ces extensions (lire python-dev). L'installation dépend du système que vous utilisez, assurez-vous simplement de connaître les noms de paquets et de pouvoir les installer.