Python и MySQL: есть ли альтернатива MySQLdb?

Есть ли модуль, написанный исключительно на Python, который позволит скрипту общаться с базой данных MySQL? Я уже пробовал MySQLdb без успеха. Это требует слишком много: GCC, zlib и openssl. У меня нет доступа к этим инструментам; даже если бы я это сделал, я не хочу тратить время на то, чтобы заставить их работать вместе. Я ищу инструменты, которые облегчат мою работу.

Может ли кто-нибудь указать мне в сторону модуля MySQL Python, написанного на Python? Если нет, советы по написанию моего собственного кода для общения с MySQL будут оценены.

Благодаря,

Тони


Спасибо всем за ваши ответы. Поскольку я работаю с небольшой базой данных (несколько сотен записей, в основном имена и адреса), я решил использовать SQLite. Я только что узнал об этом. Кажется, это идеально подходит для моих целей; он был прост в установке (занял около двух минут) и хорошо работает с Python. Я застрял с Python 2.4, поэтому я не могу использовать модуль sqlite3, но я могу общаться с базой данных, используя функцию «subprocess.Popen» Python и параметры командной строки.

  • 2D-свертка в Python, аналогичная conv2 Matlab
  • Перетаскиваемое окно с pyqt4
  • Каков предпочтительный традиционный способ включения сторонней библиотеки в проекты с открытым исходным кодом на Python?
  • Получение пользовательского ввода при запуске скрипта python в атоме
  • Boxplot: цвета по значению x и оттенки, дифференцированные по шаблону
  • Что случилось с моим СПС?
  • Базовая математика Python
  • Запись из одного файла в другой python
  • 8 Solutions collect form web for “Python и MySQL: есть ли альтернатива MySQLdb?”

    В Sun есть проект для реализации 100% -ного драйвера python mysql.

    https://launchpad.net/myconnpy

    Однако я не нашел для него никакого кода. Но, согласно комментарию в блоге , это больше, чем пароход.

    Вы посмотрели на них?

    http://wiki.python.org/moin/MySQL

    В последнее время также есть oursql ( docs ), который имеет различные преимущества перед MySQLdb и другими существующими драйверами, перечисленными в верхней части документации.

    Вы можете найти готовые бинарные пакеты для MySQLdb и его зависимости для большинства операционных систем.

    http://sourceforge.net/project/showfiles.php?group_id=22307&package_id=15775

    На какой платформе вы работаете?

    Как упоминалось в более раннем ответе, MySQL Connector / Python полностью реализует MySQL Server / Client в Python. Нет компиляции, просто установка.

    Вот ссылки:
    * https://launchpad.net/myconnpy
    * код: https://code.launchpad.net/myconnpy
    * скачать: https://launchpad.net/myconnpy/+download (разработка снимков)

    Это еще не завершено, но у него должно быть достаточно, чтобы вы продолжали. (FYI, я сопровождающий)

    Без сомнения, MySQLdb – лучшее решение, но если вы не можете его использовать …

    Если у вас libmysqlclient . [ libmysqlclient | dll ], вы можете получить доступ к нему напрямую, используя модуль ctypes .

    У меня была проблема, что я хотел написать код, который работает для Python 2 и Python 3. Я нашел pymysql идеально подходящим. Мне не нужно настраивать код для переключения с MySQLdb на pymysql

    Монтаж

     $ pip install PyMySQL 

    Если у вас нет прав администратора:

     $ pip install -u PyMySQL 

    Применение

    Использование такое же, как для MySQLdb:

    ВЫБРАТЬ

     import pymysql import pymysql.cursors connection = pymysql.connect(host=mysql['host'], user=mysql['user'], passwd=mysql['passwd'], db=mysql['db'], cursorclass=pymysql.cursors.DictCursor) cursor = connection.cursor() sql = ("SELECT `id`, `formula_in_latex` FROM `wm_formula` " "WHERE `is_important` = 1 " "AND id != 1 " # exclude trash class "ORDER BY `id` ASC") cursor.execute(sql) formulas = cursor.fetchall() 

    ВСТАВИТЬ

     import pymysql connection = pymysql.connect(host=mysql['host'], user=mysql['user'], passwd=mysql['passwd'], db=mysql['db']) cursor = connection.cursor() cursor.execute("INSERT INTO `toys` (`id`, `arrival`, `duration`) " "VALUES ('1', '2014-12-01', '123');") connection.commit() 

    Насколько я знаю, прямой альтернативы нет. Единственное, о чем я могу думать, это использовать ODBC вместо этого, используя pyodbc . На сайте MySQL есть соединитель ODBC, который вы можете скачать . Но я никогда не использовал этот подход сам, поэтому не могу сказать, насколько он будет работать.

    Interesting Posts

    В Python, что происходит при импорте внутри функции?

    Вставить evince Python GI

    небуферизованный urllib2.urlopen

    Замена текста с использованием регулярного выражения в Python с именованными параметрами

    Библиотека изображений Python выходит из строя с сообщением «JPEG декодера недоступен» – PIL

    Хороший способ добавить к строке

    Список ближайших / обнаруживаемых устройств Bluetooth, включая уже сопряженные, в Python, на Linux

    Вызов родительского класса __init__ с множественным наследованием, каков правильный путь?

    каковы накладные расходы на передачу функций обратного вызова python для подпрограмм Fortran?

    Как закрыть stdout-pipe при запуске процесса, запущенного подпроцессом python Popen?

    Эффективно выберите строки, которые соответствуют одному из нескольких значений в Pandas DataFrame

    загрузить файл в мой Dropbox из сценария python

    Как установить пакет разработчика python?

    Python Pandas объединяет данные в индексе

    Scraw CrawlSpider для контента AJAX

    Python - лучший язык программирования в мире.