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