Integracja MySQL z Pythonem w Windows

102

Trudno mi jest używać MySQL z Pythonem w moim systemie Windows.

Obecnie używam Pythona 2.6. Próbowałem skompilować kod źródłowy MySQL-python-1.2.3b1 (który ma działać w Pythonie 2.6?) Przy użyciu dostarczonych skryptów instalacyjnych. Skrypt instalacyjny działa i nie zgłasza żadnego błędu, ale nie generuje modułu _mysql.

Próbowałem również skonfigurować MySQL dla Pythona 2.5 bez powodzenia. Problem z używaniem 2.5 polega na tym, że Python 2.5 jest skompilowany z Visual Studio 2003 (zainstalowałem go przy użyciu dostarczonych plików binarnych). Mam Visual Studio 2005 na moim systemie Windows. Dlatego setuptools nie może wygenerować modułu _mysql.

Jakaś pomoc ?

Sammy
źródło
2
Od 3 lat minęły od tego pytania i 2 lata od ostatniej wysoko ocenionej odpowiedzi, zobacz zaktualizowaną odpowiedź dla Pythona 3.2 poniżej (lub zobacz wiki.python.org/moin/MySQL )
Eran Medan

Odpowiedzi:

127

Strona pobierania dla python-mysqldb . Strona zawiera pliki binarne dla 32 i 64-bitowych wersji dla Pythona 2.5, 2.6 i 2.7.

Prowadzona jest również dyskusja na temat pozbycia się ostrzeżenia o wycofaniu .

UPDATE : To stara odpowiedź. Obecnie polecam używanie PyMySQL. Jest to czysty Python, więc obsługuje jednakowo wszystkie systemy operacyjne, jest prawie bezpośrednim zamiennikiem mysqldb, a także współpracuje z Pythonem 3. Najlepszym sposobem instalacji jest użycie pip. Możesz go zainstalować stąd (więcej instrukcji tutaj ), a następnie uruchomić:

pip install pymysql
itsadok
źródło
Czy ktoś może potwierdzić, że pierwszy linkowany plik wykonywalny działa z Pythonem 2.6? Ekran powitalny instalacji mówi, że to tylko 2,5 - ale przypuszczam, że osoba, która go zbudowała, mogła po prostu nie zaktualizować tej linii dokumentacji.
John C
Zainstalowałem Pythona 2.7 x64, ale podczas importowania MySQLdb otrzymuję błąd „ImportError: Brak modułu o nazwie _mysql_windows.api”. pls ktoś pomoże mi rozwiązać ten problem.
Vilva
4
Cóż po zrobieniu pip install pymysql, syncdbnadal narzekałem na brakujący MySQLdbmoduł.
Shailen
podczas gdy uruchamiam to polecenie w 64-bitowym systemie Windows 8.1, pokazuje ono: Traceback (ostatnie wywołanie ostatnie): Plik „C: \ Python33 \ Scripts \ pip-script.py”, wiersz 5, w <module> z pkg_resources import load_entry_point ImportError: Brak modułu o nazwie „pkg_resources”
hizbul25
@shailenTJ (i każdy z podobnym problemem) zajrzyj tutaj
itsadok
31

To może brzmieć tak, jak udzielanie rad przez dziadka, ale wszystkie odpowiedzi tutaj nie wspominały o najlepszym sposobie: idź i zainstaluj ActivePython zamiast plików binarnych systemu Windows python.org. Naprawdę długo się zastanawiałem, dlaczego programowanie Pythona w systemie Windows było taką pitą - dopóki nie zainstalowałem pythona activestate. Nie jestem z nimi powiązany. To po prostu prawda. Napisz to na każdej ścianie: programowanie w Pythonie na Windows = ActiveState ! wtedy po prostu pypm install mysql-pythoni wszystko działa sprawnie. bez kompilacji orgii. żadnych dziwnych błędów. bez terroru. Po pięciu minutach zacznij programować i wykonywać prawdziwą pracę. To jedyny sposób, aby przejść do systemu Windows. Naprawdę.

Gorgonzola Balistico Refurbo B
źródło
2
Byłoby idealnym rozwiązaniem, gdyby subskrypcja Business Edition nie była konieczna ...
Matheus Moreira
4
@ matheus.emm - Business Edition nie jest konieczne do zainstalowania MySQLdb w 32-bitowym systemie Windows.
Sridhar Ratnakumar
7
@ matheus.emm - aby uzyskać bezpłatny dostęp, możesz zainstalować 32-bitowy program ActivePython w 64-bitowym systemie operacyjnym Windows 7, a następnie zainstalować mysql-python. 64-bitowy ActivePython wymaga subskrypcji BE do instalacji pakietów.
Sridhar Ratnakumar
2
To świetna rada. Myślę, że wersja Business Edition jest tego warta, jeśli poważnie używasz Pythona w produkcji. Jeśli oszczędza kilka godzin pracy w miesiącu, to się opłaca. Wszystkie te bóle głowy związane z konfiguracją sprawiają, że przypominam sobie model biznesowy open source: „Daj im oprogramowanie za darmo, ale spraw, aby instalacja i użytkowanie było tak trudne, że muszą kupić instrukcję i / lub wsparcie”. Jedynym problemem jest to, że wiele z tych projektów nie zapewnia ani nie sprzedaje wsparcia, ponieważ postrzegają open source jako ideologię, a nie to, co miało być, model biznesowy. lolz
Dana Holt
1
Po prostu zainstalowałem go przy użyciu edycji społecznościowej activepython i działało jak marzenie. Gorąco polecam
Cleber Goncalves,
15

Jako początkujący Python uczący się ekosystemu Pythona właśnie to ukończyłem.

  1. Zainstaluj instrukcje setuptools

  2. Zainstaluj MySQL 5.1. Pobierz 97,6 MB MSI stąd. Nie możesz używać wersji Essentials, ponieważ nie zawiera ona bibliotek C.
    Pamiętaj, aby wybrać instalację niestandardową i oznaczyć narzędzia programistyczne / biblioteki do instalacji, ponieważ nie jest to wykonywane domyślnie. Jest to potrzebne, aby uzyskać pliki nagłówkowe C.
    Możesz sprawdzić, czy zrobiłeś to poprawnie, szukając w katalogu instalacyjnym folderu o nazwie „include”. EG C: \ Program Files \ MySQL \ MySQL Server 5.1 \ include. Powinien zawierać całą masę plików .h.

  3. Zainstaluj Microsoft Visual Studio C ++ Express 2008 z tego miejsca Jest to wymagane, aby uzyskać kompilator C.

  4. Otwórz wiersz poleceń jako administrator (kliknij prawym przyciskiem myszy skrót Cmd, a następnie „uruchom jako administrator”. Pamiętaj, aby otworzyć nowe okno po zainstalowaniu tych elementów, w przeciwnym razie ścieżka nie zostanie zaktualizowana, a instalacja nadal się nie powiedzie).

  5. W wierszu polecenia:

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

    To się nie powiedzie - co jest w porządku.

    Teraz otwórz site.cfg w katalogu tymczasowym C: \ temp \ somempdir i edytuj ustawienie „register_key” na:

    register_key = OPROGRAMOWANIE \ MySQL AB \ MySQL Server 5.1

    teraz CD do twojego tymczasowego katalogu i:

    python setup.py czysty

    python setup.py install

    Powinieneś być gotowy na rock!

  6. Oto super prosty skrypt, aby rozpocząć naukę interfejsu API Python DB - jeśli go potrzebujesz.

Społeczność
źródło
7

Znalazłem lokalizację, w której jedna osoba pomyślnie zbudowała mysql dla python2.6, udostępniając link, http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

... możesz zobaczyć ostrzeżenie podczas importowania MySQLdb, co jest w porządku i nic nie zaszkodzi,

C: \ Python26 \ lib \ site-packages \ MySQLdb__init __. Py: 34: DeprecationWarning: moduł sets jest przestarzały z zestawów import ImmutableSet


źródło
5

A co z pymysql ? To czysty Python i używałem go w systemie Windows ze sporym sukcesem, omijając trudności związane z kompilacją i instalacją mysql-python.

JasonFruit
źródło
2

Prekompilowane pliki binarne na http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python właśnie dla mnie działały.

  1. Otwórz MySQL_python-1.2.5-cp27-none-win_amd64.whlplik za pomocą programu do rozpakowywania plików ZIP.
  2. Skopiuj zawartość do C:\Python27\Lib\site-packages\
guneysus
źródło
2

Możesz spróbować użyć myPySQL. Jest naprawdę łatwy w użyciu; bez kompilacji dla systemu Windows, a nawet jeśli z jakiegoś powodu musisz go skompilować, potrzebujesz tylko Pythona i Visual C (nie mysql).

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

Powodzenia

Gustavo Vargas
źródło
1

Ponieważ używam Pythona w (pylonach / piramidach) virtualenv, nie mogłem uruchomić instalatorów binarnych (pomocnych), do których wcześniej podłączono.

Miałem problemy z wykonaniem czynności z odpowiedzią Williego, ale ustaliłem, że problem polega (prawdopodobnie) na tym, że używam instalacji systemu Windows 7 x64, która umieszcza klucz rejestru dla mysql w nieco innej lokalizacji, szczególnie w moim przypadku (uwaga: ja korzystam z wersji 5.5) w: „HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5”.

JEDNAK „HKEY_LOCAL_MACHINE \” nie może zostać uwzględniony w ścieżce lub zakończy się niepowodzeniem.

Musiałem również wykonać restart między krokami 3 i 4.

Po przepracowaniu tego wszystkiego, IMO byłoby mądrzejsze, gdyby uruchomić całe środowisko programistyczne Pythona z Cygwin.

Evan
źródło
0

Możesz również rozważyć użycie Cygwin , ma on biblioteki mysql python w repozytorium.

lfaraone
źródło
0

Możesz także użyć pyodbc z MySQL Connector / ODBC, aby używać MySQL w systemie Windows. Dostępny jest również Unixodbc, aby kod był kompatybilny z Linuksem. Pyodbc używa standardowego Python DB API 2.0, więc jeśli będziesz się trzymać tego przełączania pomiędzy sterownikami MySQL / PostgreSQL / SQLite / ODBC / JDBC itp. Powinno być stosunkowo bezbolesne.

fijiaaron
źródło
0

Mam dość problemów z instalacją MySQLdb i zamiast tego wypróbowałem pymysql .

Łatwe ustawienie;

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

A API są prawie takie same.

Daniel Magnusson
źródło