Ответ 1
В Sun появился проект для реализации 100% -ного драйвера python mysql.
https://launchpad.net/myconnpy
Я не нашел для него никакого кода. Но в соответствии с комментарием в блоге, это больше, чем паровозы.
Есть ли модуль, написанный исключительно на Python, который позволит script взаимодействовать с базой данных MySQL? Я уже пробовал MySQLdb без успеха. Это требует слишком много: GCC, zlib и openssl. У меня нет доступа к этим инструментам; даже если бы я это сделал, я не хочу тратить время на то, чтобы заставить их работать вместе. Я ищу инструменты, которые облегчат мою работу.
Может ли кто-нибудь указать мне в сторону модуля Python MySQL, написанного на Python? Если нет, советы по написанию моего собственного кода для общения с MySQL будут оценены.
Спасибо,
Тони
Спасибо всем за ваши ответы. Поскольку я работаю с небольшой базой данных (несколько сотен записей, в основном имена и адреса), я решил использовать SQLite. Я только что узнал об этом. Кажется, это идеально подходит для моих целей; он был прост в установке (занял около двух минут) и хорошо работает с Python. Я застрял с Python 2.4, поэтому я не могу использовать модуль sqlite3, но я могу общаться с базой данных с помощью функции subprocess.Popen и параметров командной строки Python.
В Sun появился проект для реализации 100% -ного драйвера python mysql.
https://launchpad.net/myconnpy
Я не нашел для него никакого кода. Но в соответствии с комментарием в блоге, это больше, чем паровозы.
Вы посмотрели на них?
В последнее время также есть 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
* code: https://code.launchpad.net/myconnpy
* скачать: https://launchpad.net/myconnpy/+download (разработка снимков)
Это еще не завершено, но у него должно быть достаточно, чтобы вы неслись. (FYI, я сопровождающий)
У меня была проблема, что я хотел написать код, который работает для 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()
Без сомнения, MySQLdb - лучшее решение, но если вы не можете его использовать...
Если у вас есть libmysqlclient
. [so
| dll
], вы можете получить к нему доступ напрямую, используя ctypes module,
Насколько я знаю, прямой альтернативы нет. Единственное, что я могу придумать, - это использовать ODBC вместо pyodbc. На сайте MySQL есть соединитель ODBC, который вы можете download. Но я никогда не использовал этот подход сам, поэтому не могу сказать, насколько хорошо он будет работать.