Интеграция MySQL с Python в Windows

102

Мне сложно использовать MySQL с Python в моей системе Windows.

В настоящее время я использую Python 2.6. Я попытался скомпилировать исходный код MySQL-python-1.2.3b1 (который должен работать для Python 2.6?), Используя предоставленные сценарии установки. Сценарий установки запускается и не сообщает об ошибках, но не генерирует модуль _mysql.

Я также безуспешно пытался настроить MySQL для Python 2.5. Проблема с использованием 2.5 заключается в том, что Python 2.5 скомпилирован с Visual Studio 2003 (я установил его, используя предоставленные двоичные файлы). У меня есть Visual Studio 2005 в моей системе Windows. Следовательно, setuptools не может создать модуль _mysql.

Любая помощь ?

Сэмми
источник
2
С момента запроса прошло 3 года и 2 года с момента последнего высоко оцененного ответа, см. Обновленный ответ для Python 3.2 ниже (или см. Wiki.python.org/moin/MySQL )
Эран Медан

Ответы:

127

Страница загрузки для python-mysqldb . На странице представлены двоичные файлы для 32- и 64-разрядных версий Python 2.5, 2.6 и 2.7.

Также обсуждается избавление от предупреждения об устаревании .

ОБНОВЛЕНИЕ : это старый ответ. В настоящее время я бы рекомендовал использовать PyMySQL. Это чистый питон, поэтому он поддерживает все операционные системы в равной степени, это почти прямая замена mysqldb, и он также работает с python 3. Лучший способ установить его - использовать pip. Вы можете установить его отсюда (дополнительные инструкции здесь ), а затем запустить:

pip install pymysql
itsadok
источник
Может ли кто-нибудь подтвердить, что первый связанный исполняемый файл работает с Python 2.6? На экране-заставке установки указано, что это только 2.5, но я предполагаю, что человек, который его создал, возможно, просто не обновил эту строку документации.
John C
Я установил python 2.7 x64, но при импорте MySQLdb получаю ошибку «ImportError: No module named _mysql_windows.api». пожалуйста, помогите мне решить эту проблему.
Вильва
4
Ну сделав pip install pymysql, syncdbвсе же пожаловались на отсутствующий MySQLdbмодуль.
Shailen
пока я запускаю эту команду в своей 64-битной системе Windows 8.1, она показывает: Traceback (последний вызов последним): файл «C: \ Python33 \ Scripts \ pip-script.py», строка 5, в <module> из pkg_resources import load_entry_point ImportError: нет модуля с именем pkg_resources
hizbul25,
@shailenTJ (и всех, у кого есть подобная проблема), смотрите здесь
itsadok 09
31

Это может выглядеть как совет вашего дедушки, но все ответы здесь не упоминают лучший способ: пойти и установить ActivePython вместо двоичных файлов Windows python.org. Я действительно долго задавался вопросом, почему разработка Python для Windows была такой лавашой - пока я не установил activestate python. Я не связан с ними. Это чистая правда. Напишите это на каждой стене: Разработка Python в Windows = ActiveState ! у вас тогда как раз pypm install mysql-pythonи все гладко работает. нет компиляции оргии. никаких странных ошибок. никакого террора. Просто начните кодировать и делать настоящую работу через пять минут. Это единственный способ перейти на окна. В самом деле.

Горгонзола Balistico Refurbo B
источник
2
Это было бы идеальным решением, если бы подписка на Business Edition не требовалась ...
Матеус Морейра
4
@ matheus.emm - Business Edition не требуется для установки MySQLdb в 32-разрядной версии Windows.
Шридхар Ратнакумар
7
@ matheus.emm - Для бесплатного доступа вы можете установить 32-разрядную версию ActivePython в 64-разрядной ОС Windows 7, а затем установить mysql-python. Для 64-разрядной версии ActivePython требуется подписка BE для установки пакетов.
Шридхар Ратнакумар
2
Это отличный совет. Я думаю, что Business Edition того стоит, если вы серьезно используете Python в производстве. Если он экономит вам несколько часов работы в месяц, он окупается. Все эти головные боли конфигурации заставляют меня вспомнить бизнес-модель с открытым исходным кодом: «Дайте им программное обеспечение бесплатно, но сделайте его настолько сложным в установке и использовании, что им придется покупать руководство и / или поддержку». Единственная проблема в том, что многие из этих проектов не предоставляют или не продают поддержку, потому что они рассматривают открытый исходный код как идеологию, а не как бизнес-модель, как предполагалось. lolz
Дана Холт
1
Просто установил его, используя версию сообщества activepython, и он работал как шарм. Настоятельно рекомендуется
Клебер Гонсалвес
15

Как новичок в Python, изучающий экосистему Python, я только что закончил это.

  1. Инструкции по установке setuptools

  2. Установите MySQL 5.1. Загрузите 97,6 МБ MSI отсюда. Вы не можете использовать основную версию, поскольку она не содержит библиотек C.
    Обязательно выберите выборочную установку и отметьте инструменты / библиотеки разработки для установки, поскольку это не выполняется по умолчанию. Это необходимо для получения файлов заголовков C.
    Вы можете убедиться, что сделали это правильно, посмотрев в каталоге установки папку с именем «include». Например, C: \ Program Files \ MySQL \ MySQL Server 5.1 \ include. У него должна быть целая куча файлов .h.

  3. Установите Microsoft Visual Studio C ++ Express 2008 отсюда. Это необходимо для получения компилятора C.

  4. Откройте командную строку от имени администратора (щелкните правой кнопкой мыши ярлык Cmd и выберите «Запуск от имени администратора». Обязательно откройте новое окно после установки этих вещей, иначе ваш путь не будет обновлен, и установка все равно завершится ошибкой.

  5. Из командной строки:

    easy_install -b C: \ temp \ sometempdir mysql-python

    Это не удастся - и это нормально.

    Теперь откройте site.cfg во временном каталоге C: \ temp \ sometempdir и измените параметр «registry_key» на:

    registry_key = ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ MySQL AB \ MySQL Server 5.1

    теперь компакт-диск в свой временный каталог и:

    python setup.py чистый

    установка python setup.py

    Вы должны быть готовы к рок!

  6. Вот суперпростой сценарий, который поможет вам начать изучение API Python DB - если он вам нужен.

Сообщество
источник
7

Я нашел место, где один человек успешно собрал mysql для python2.6, поделившись ссылкой http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

... вы можете увидеть предупреждение при импорте MySQLdb, что нормально и ничего не повредит,

C: \ Python26 \ lib \ site-packages \ MySQLdb__init __. Py: 34: DeprecationWarning: модуль множеств устарел из наборов import ImmutableSet


источник
5

А как насчет pymysql ? Это чистый Python, и я успешно использовал его в Windows, обходя трудности компиляции и установки mysql-python.

ДжейсонФрут
источник
2

На Sourceforge доступны двоичные файлы Windows для MySQL-Python (2.4 и 2.5) . Вы пробовали их?

Дэйв Уэбб
источник
Бинарные файлы 2.5 (и 2.4) не могут быть установлены, если установлено только 2.6
Дэвид Сайкс,
Это будет потому, что версии должны совпадать. В этом сообщении блога есть ссылка на MySQL-Python 2.6 для Windows, но я не пробовал: timvalenta.wordpress.com/2009/02/04/python-26-mysql
Дэйв Уэбб
2

Предварительно скомпилированные двоичные файлы на http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python просто работали для меня.

  1. Откройте MySQL_python-1.2.5-cp27-none-win_amd64.whlфайл с помощью программы для распаковки zip.
  2. Скопируйте содержимое в C:\Python27\Lib\site-packages\
гунейзус
источник
2

Вы можете попробовать использовать myPySQL. Его действительно легко использовать; нет компиляции для Windows, и даже если вам нужно скомпилировать ее по какой-либо причине, вам нужно установить только Python и Visual C (не mysql).

http://code.google.com/p/mypysql/

Удачи

Густаво Варгас
источник
1

Поскольку я запускаю python в виртуальном (пилоны / пирамиды) virtualenv, мне не удалось запустить бинарные установщики (полезно), связанные с ранее.

У меня возникли проблемы с выполнением шагов с ответом Вилли, но я определил, что проблема (вероятно) в том, что я запускаю установку Windows 7 x64, которая помещает ключ реестра для mysql в немного другое место, особенно в моем случае (примечание: я я использую версию 5.5) в: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5".

ОДНАКО, "HKEY_LOCAL_MACHINE \" не может быть включен в путь, иначе он завершится ошибкой.

Кроме того, мне пришлось выполнить перезапуск между шагами 3 и 4.

После проработки всего этого, IMO, было бы разумнее запустить всю среду разработки python из cygwin.

Эван
источник
0

Вы можете также рассмотреть возможность использования Cygwin , в его репозитории есть библиотеки mysql python.

lfaraone
источник
0

Вы также можете использовать pyodbc с MySQL Connector / ODBC для использования MySQL в Windows. Unixodbc также доступен для обеспечения совместимости кода с Linux. Pyodbc использует стандартный Python DB API 2.0, поэтому, если вы придерживаетесь этого, переключение между драйверами MySQL / PostgreSQL / SQLite / ODBC / JDBC и т. Д. Должно быть относительно безболезненным.

Fijiaaron
источник
0

Устал от проблем с установкой MySQLdb и вместо этого попробовал pymysql .

Легкая настройка;

git clone https://github.com/petehunt/PyMySQL.git
python setup.py install

И API почти такие же.

Даниэль Магнуссон
источник