Інтеграція 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 компілюється з візуальною студією 2003 (я встановив його за допомогою наданих бінарних файлів). У мене в системі Windows візуальна студія 2005 року. Отже, 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. Це чистий python, тому він підтримує всі ОС однаковою мірою, це майже заміна заміни mysqldb, а також він працює з python 3. Найкращий спосіб встановити це за допомогою pip. Ви можете встановити його звідси (більше інструкцій тут ), а потім запустіть:

pip install pymysql

Чи може хто-небудь підтвердити, що перший пов'язаний виконуваний файл працює з Python 2.6? На екрані вивіски встановлено лише 2,5 - але я припускаю, що людина, яка її побудувала, може просто не оновила цей рядок документації.
Джон C

Я встановив python 2.7 x64, але під час імпорту MySQLdb я отримую помилку "ImportError: Немає модуля з ім'ям _mysql_windows.api". будь-хто допоможе мені вирішити це питання.
Вільва

4
Ну після того, як робити pip install pymysql, syncdbвсе ще скаржився на відсутньому MySQLdbмодулі.
Шейлен

поки я запускаю цю команду у своїй Windows 8.1 64-бітній системі, вона показує: Traceback (останній виклик останній): Файл "C: \ Python33 \ Scripts \ pip-script.py", рядок 5, в <module> з pkg_resources import load_entry_point ImportError: Немає модуля під назвою "pkg_resources"
hizbul25

@shailenTJ (і кожен, хто має подібну проблему) дивіться тут
itsadok

31

Це може виглядати так, як ваша порада діда-гівіна, але всі відповіді тут не згадуються найкращим чином: перейдіть на інсталяцію ActivePython замість бінарних файлів windows python.org. Мені дуже довго було цікаво, чому розробка Python на Windows була такою пітою - доки я не встановив активний пітон. Я не пов’язаний з ними. Це просто правда. Напишіть це на кожній стіні: Розробка Python у Windows = ActiveState ! ви тоді просто pypm install mysql-pythonі все працює безперебійно. немає оргії компіляції. ніяких дивних помилок. ніякого терору. Просто почніть кодування та виконайте справжню роботу через п’ять хвилин. Це єдиний спосіб перейти на вікна. Дійсно.


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.
    Ви можете переконатися, що ви це зробили правильно, переглянувши у своєму каталогу встановлення папку з назвою "включити". EG C: \ програмні файли \ 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 та відредагуйте параметр "register_key" на:

    register_key = ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ \ MySQL AB \ MySQL Server 5.1

    тепер компакт-диск у темп-режимі та:

    python setup.py чистий

    встановити python setup.py

    Ви повинні бути готові до гойдання!

  6. Ось надзвичайно простий сценарій, щоб почати вивчати API Python DB для вас - якщо він вам потрібен.


7

Я виявив, що одна людина успішно створила mysql для python2.6, поділившись посиланням, http : //www.techniškibard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

... під час імпорту MySQLdb ви можете побачити попередження, яке добре, і нічого не зашкодить,

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


5

А що з pymysql ? Це чистий Python, і я використовував його в Windows із значним успіхом, минаючи труднощі зі складанням та встановленням mysql-python.



2

Бінарні файли 2,5 (та 2,4) не вдаються встановити, якщо встановлено лише 2,6
Девід Сайкс

Це буде тому, що версії повинні відповідати. У цій публікації щоденника є посилання на MySQL-Python 2.6 для Windows, але я його не пробував: timvalenta.wordpress.com/2009/02/04/python-26-mysql
Дейв Вебб



2

Ви можете спробувати використовувати myPySQL. Це дуже просто у використанні; немає компіляції для Windows, і навіть якщо вам потрібно зібрати її з будь-якої причини, вам потрібні лише встановлені Python та Visual C (не mysql).

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

Удачі


1

Оскільки я запускаю python в (pylons / pyramid) virtualenv, я не міг запускати бінарні інсталятори (корисно), пов'язані з раніше.

У мене виникли проблеми, виконуючи кроки з відповіддю Віллі, але я визначив, що проблема (ймовірно) полягає в тому, що я запускаю Windows 7 x64 install, який кладе ключ реєстру для 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.


0

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



0

Захворіла проблемами встановлення з MySQLdb і натомість спробувала pymysql .

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

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

І API майже однакові.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.