MySQLdb è un sottile wrapper Python attorno al modulo C che implementa l'API per il database MySQL.
C'era MySQLDb1 versione di wrapper usata qualche tempo fa e ora è considerata un'eredità. Quando MySQLDb1 ha iniziato a evolversi in MySQLDb2 con correzioni di bug e supporto per Python3, un MySQLDb1 è stato biforcato ed ecco come mysqlclient apparso, con correzioni di bug e supporto per Python3. Riassumendo, ora abbiamo MySQLDb2 che non è pronto per l'uso in produzione, MySQLDb1 come driver obsoleto e un mysqlclient supportato dalla community con correzioni di bug e supporto per Python3.
Ora, per risolvere questo pasticcio, MySQL fornisce la propria versione dell'adattatore MySQL - connettore mysql , un modulo Python all-in che utilizza l'API MySQL con nessuna dipendenza dai moduli C e solo moduli Python standard utilizzati.
Quindi ora la domanda si riduce a:mysqlclient vs mysql connector.
Per quanto mi riguarda, andrei con la libreria ufficialmente supportata, tuttavia mysqlclient
dovrebbe essere anche una buona scelta. Entrambi sono stati attivamente aggiornati con correzioni e nuove funzionalità che puoi vedere dai commit attivi negli ultimi giorni.
Nota:non ho molta esperienza con loro, quindi potrebbero esserci casi in cui l'uno o l'altro non soddisfa le tue esigenze. Entrambe le librerie seguono PEP-249 standard, il che significa che dovresti avere almeno funzionalità di base ovunque.
Installazione e dipendenze
- mysqlclient
Come fork del wrapper C richiede moduli C per funzionare con MySQL che aggiunge file di intestazione Python per creare queste estensioni (leggi python-dev). L'installazione dipende dal sistema che utilizzi, assicurati solo di conoscere i nomi dei pacchetti e di poterli installare.
- connettore mysqlDocumentazione principale è abbastanza chiaro, tuttavia dovresti essere a conoscenza di Protobuf C++ dipendenza (per il connettore mysql versioni>=2.2.3 ).