Mengintegrasikan MySQL dengan Python di Windows

102

Saya merasa sulit untuk menggunakan MySQL dengan Python di sistem windows saya.

Saya saat ini menggunakan Python 2.6. Saya telah mencoba untuk mengkompilasi kode sumber MySQL-python-1.2.3b1 (yang seharusnya bekerja untuk Python 2.6?) Menggunakan skrip pengaturan yang disediakan. Skrip penyiapan berjalan dan tidak melaporkan kesalahan apa pun tetapi tidak menghasilkan modul _mysql.

Saya juga mencoba menyiapkan MySQL untuk Python 2.5 tanpa keberhasilan. Masalah dengan menggunakan 2.5 adalah Python 2.5 dikompilasi dengan visual studio 2003 (saya menginstalnya menggunakan binari yang disediakan). Saya memiliki visual studio 2005 di sistem windows saya. Karenanya setuptools gagal menghasilkan modul _mysql.

Ada bantuan?

Sammy
sumber
2
Sejak 3 tahun telah berlalu sejak pertanyaan ini ditanyakan, dan 2 tahun sejak jawaban suara tertinggi terakhir, lihat jawaban terbaru untuk Python 3.2 di bawah (atau lihat wiki.python.org/moin/MySQL )
Eran Medan

Jawaban:

127

Halaman unduh untuk python-mysqldb . Halaman ini menyertakan binari untuk versi 32 dan 64 bit untuk Python 2.5, 2.6 dan 2.7.

Ada juga diskusi tentang menghilangkan peringatan penghentian .

UPDATE : Ini adalah jawaban lama. Saat ini, saya akan merekomendasikan penggunaan PyMySQL. Ini python murni, sehingga mendukung semua OS secara merata, ini hampir merupakan pengganti drop-in untuk mysqldb, dan juga berfungsi dengan python 3. Cara terbaik untuk menginstalnya adalah menggunakan pip. Anda dapat menginstalnya dari sini (petunjuk lebih lanjut di sini ), lalu jalankan:

pip install pymysql
itsadok
sumber
Adakah yang bisa memastikan bahwa executable tertaut pertama bekerja dengan Python 2.6? Layar pembuka instalasi mengatakan itu hanya 2.5 - tetapi saya berasumsi orang yang membuatnya mungkin belum memperbarui baris dokumentasi itu.
John C
Saya menginstal python 2.7 x64 tetapi saat mengimpor MySQLdb saya mendapatkan kesalahan 'ImportError: No module bernama _mysql_windows.api'. tolong ada yang bantu saya untuk memecahkan masalah ini.
Vilva
4
Nah setelah dilakukan pip install pymysql, syncdbmasih ada keluhan tentang MySQLdbmodul yang hilang .
Shailen
ketika saya menjalankan perintah ini di sistem windows 8.1 64 bit saya, itu menunjukkan: Traceback (panggilan terbaru terakhir): File "C: \ Python33 \ Scripts \ pip-script.py", baris 5, di <module> dari pkg_resources import load_entry_point ImportError: Tidak ada modul bernama 'pkg_resources'
hizbul25
@shailenTJ (dan siapa pun yang memiliki masalah serupa) lihat di sini
itsadok
31

Ini mungkin terbaca seperti nasihat kakek Anda, tetapi semua jawaban di sini tidak menyebutkan cara terbaik: pergi dan instal ActivePython daripada binari python.org windows. Saya benar-benar bertanya-tanya untuk waktu yang lama mengapa pengembangan Python di windows seperti pita - sampai saya menginstal python aktif. Saya tidak berafiliasi dengan mereka. Itu hanya kebenaran yang jelas. Tuliskan di setiap dinding: Pengembangan Python di Windows = ActiveState ! Anda kemudian adil pypm install mysql-pythondan semuanya bekerja dengan lancar. tidak ada pesta kompilasi. tidak ada kesalahan yang aneh. tidak ada teror. Mulailah membuat kode dan melakukan pekerjaan nyata setelah lima menit. Ini adalah satu-satunya cara untuk membuka jendela. Betulkah.

Gorgonzola Balistico Refurbo B
sumber
2
Ini akan menjadi solusi sempurna jika langganan Edisi Bisnis tidak diperlukan ...
Matheus Moreira
4
@ matheus.emm - Edisi Bisnis tidak diperlukan untuk menginstal MySQLdb pada Windows 32-bit.
Sridhar Ratnakumar
7
@ matheus.emm - Untuk akses gratis, Anda dapat menginstal ActivePython 32-bit pada OS Windows 7 64-bit Anda dan kemudian menginstal mysql-python. ActivePython 64-bit memang memerlukan langganan BE untuk menginstal paket.
Sridhar Ratnakumar
2
Ini adalah nasihat yang bagus. Saya pikir Edisi Bisnis sangat berharga jika Anda serius menggunakan Python dalam produksi. Jika itu menghemat beberapa jam kerja dalam sebulan, itu akan terbayar dengan sendirinya. Semua masalah konfigurasi ini membuat saya mengingat model bisnis open source: "Beri mereka perangkat lunak secara gratis, tetapi buat mereka sangat sulit untuk menginstal dan menggunakannya sehingga mereka perlu membeli manual dan / atau dukungan." Satu-satunya masalah adalah banyak dari proyek ini tidak menyediakan atau menjual dukungan karena mereka melihat open source sebagai ideologi, bukan apa yang dimaksudkan, model bisnis. lolz
Dana Holt
1
Baru saja menginstalnya menggunakan edisi komunitas activepython dan berfungsi dengan sangat baik. Sangat direkomendasikan
Cleber Goncalves
15

Sebagai pemula Python yang mempelajari ekosistem Python, saya baru saja menyelesaikan ini.

  1. Instal instruksi setuptools

  2. Instal MySQL 5.1. Unduh MSI 97,6MB dari sini Anda tidak dapat menggunakan versi penting karena tidak berisi pustaka C.
    Pastikan untuk memilih penginstalan khusus, dan tandai alat / pustaka pengembangan untuk penginstalan karena itu tidak dilakukan secara default. Ini diperlukan untuk mendapatkan file header C.
    Anda dapat memverifikasi bahwa Anda telah melakukan ini dengan benar dengan mencari di direktori instalasi Anda untuk folder bernama "include". Misalnya C: \ Program Files \ MySQL \ MySQL Server 5.1 \ include. Ini harus memiliki sejumlah besar file .h.

  3. Instal Microsoft Visual Studio C ++ Express 2008 dari sini Ini diperlukan untuk mendapatkan kompiler C.

  4. Buka baris perintah sebagai administrator (klik kanan pada pintasan Cmd dan kemudian "jalankan sebagai administrator". Pastikan untuk membuka jendela baru setelah Anda menginstal hal-hal itu atau jalur Anda tidak akan diperbarui dan penginstalan akan tetap gagal.

  5. Dari prompt perintah:

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

    Itu akan gagal - itu OK.

    Sekarang buka site.cfg di direktori temp Anda C: \ temp \ sometempdir dan edit pengaturan "registry_key" ke:

    registry_key = PERANGKAT LUNAK \ MySQL AB \ MySQL Server 5.1

    sekarang CD ke dir suhu Anda dan:

    python setup.py bersih

    python setup.py install

    Anda harus siap untuk bergoyang!

  6. Berikut ini skrip super sederhana untuk memulai mempelajari Python DB API untuk Anda - jika Anda membutuhkannya.

Komunitas
sumber
7

Saya menemukan lokasi di mana satu orang berhasil membangun mysql untuk python2.6, membagikan tautan, http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

... Anda mungkin melihat peringatan saat mengimpor MySQLdb yang baik-baik saja dan tidak akan merugikan apa pun,

C: \ Python26 \ lib \ site-packages \ MySQLdb__init __. Py: 34: DeprecationWarning: modul set sudah tidak digunakan lagi dari set import ImmutableSet


sumber
5

Bagaimana dengan pymysql ? Ini murni Python, dan saya telah menggunakannya di Windows dengan kesuksesan yang cukup besar, melewati kesulitan dalam mengompilasi dan menginstal mysql-python.

JasonFruit
sumber
2

Binari yang telah dikompilasi sebelumnya di http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python hanya berfungsi untuk saya.

  1. Buka MySQL_python-1.2.5-cp27-none-win_amd64.whlfile dengan program ekstraktor zip.
  2. Salin isinya ke C:\Python27\Lib\site-packages\
guneysus
sumber
2

Anda dapat mencoba menggunakan myPySQL. Sangat mudah digunakan; tidak ada kompilasi untuk windows, dan bahkan jika Anda perlu mengkompilasinya karena alasan apa pun, Anda hanya perlu menginstal Python dan Visual C (bukan mysql).

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

Semoga berhasil

Gustavo Vargas
sumber
1

Karena saya menjalankan python di virtualenv (pylons / pyramid), saya tidak dapat menjalankan installer biner (membantu) yang ditautkan sebelumnya.

Saya mengalami masalah dalam mengikuti langkah-langkah dengan jawaban Willie, tetapi saya memutuskan bahwa masalahnya adalah (mungkin) bahwa saya menjalankan instalasi windows 7 x64, yang menempatkan kunci registri untuk mysql di lokasi yang sedikit berbeda, khususnya dalam kasus saya (catatan: Saya saya menjalankan versi 5.5) di: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5".

NAMUN, "HKEY_LOCAL_MACHINE \" tidak dapat disertakan dalam jalur atau akan gagal.

Juga, saya harus melakukan restart antara langkah 3 dan 4.

Setelah mengerjakan semua ini, IMO akan lebih pintar menjalankan seluruh lingkungan dev python dari cygwin.

Evan
sumber
0

Anda mungkin juga ingin mempertimbangkan untuk menggunakan Cygwin , ia memiliki pustaka python mysql di repositori.

lfaraone
sumber
0

Anda juga dapat menggunakan pyodbc dengan Konektor MySQL / ODBC untuk menggunakan MySQL di Windows. Unixodbc juga tersedia untuk membuat kode tersebut kompatibel di Linux. Pyodbc menggunakan Python DB API 2.0 standar jadi jika Anda tetap menggunakan pengalihan antara driver MySQL / PostgreSQL / SQLite / ODBC / JDBC, dll. Seharusnya relatif tidak menyakitkan.

fijiaaron
sumber
0

Muak dengan masalah instalasi dengan MySQLdb dan sebagai gantinya mencoba pymysql .

Pengaturan mudah;

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

Dan API hampir sama.

Daniel Magnusson
sumber