MySQLdb - это тонкая оболочка Python вокруг модуля C, которая реализует API для базы данных MySQL.
Был MySQLDb1 версия обертки использовали некоторое время назад , и теперь он считается наследием. Когда MySQLDb1 начал развиваться до MySQLDb2 с исправлениями ошибок и поддержкой Python3, MySQLDb1 был разветвлен, и вот как появился mysqlclient с исправлениями ошибок и поддержкой Python3. Подводя итог, теперь у нас есть MySQLDb2, который не готов к производственному использованию, MySQLDb1 как устаревший драйвер и сообщество, поддерживающее mysqlclient с исправлениями ошибок и поддержкой Python3.
Теперь, чтобы решить этот беспорядок, MySQL предоставляет свою собственную версию адаптера MySQL - соединитель mysql , комплексный модуль Python, который использует MySQL API без зависимостей модулей C и использует только стандартные модули Python.
Итак, теперь вопрос сводится к следующему: mysqlclient vs mysql connector.
Что касается меня, я бы mysqlclient
выбрал официально поддерживаемую библиотеку, но это тоже должно быть хорошим выбором. Оба они активно обновляются исправлениями и новыми функциями, которые вы можете увидеть по активным коммитам в последние дни.
Примечание: у меня не было большого опыта работы с ними, поэтому могут быть случаи, когда тот или иной не соответствует вашим потребностям. Обе библиотеки соответствуют стандарту PEP-249, что означает, что вы должны быть в порядке, по крайней мере, с базовой функциональностью везде.
Установка и зависимости
Как ответвление оболочки C, он требует модулей C для работы с MySQL, который добавляет файлы заголовков python для создания этих расширений (см. Python-dev). Установка зависит от используемой вами системы, просто убедитесь, что вы знаете имена пакетов и можете их установить.