การรวม 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 )
Eran Medan

คำตอบ:


127

หน้าดาวน์โหลดสำหรับหลาม MySQLdb หน้านี้มีไบนารีสำหรับเวอร์ชัน 32 และ 64 บิตสำหรับ Python 2.5, 2.6 และ 2.7

นอกจากนี้ยังมีการอภิปรายเกี่ยวกับการกำจัดของการเตือนเลิก

UPDATE : นี่เป็นคำตอบเก่า ปัจจุบันฉันอยากจะแนะนำให้ใช้ PyMySQL เป็น python ที่บริสุทธิ์ดังนั้นจึงรองรับ OS ทั้งหมดเท่า ๆ กันเกือบจะเป็นการแทนที่ mysqldb แบบดรอปอินและยังใช้งานได้กับ python 3 วิธีที่ดีที่สุดในการติดตั้งคือการใช้ pip คุณสามารถติดตั้งได้จากที่นี่ (คำแนะนำเพิ่มเติมที่นี่ ) จากนั้นเรียกใช้:

pip install pymysql

ใครสามารถยืนยันได้ว่าไฟล์ปฏิบัติการที่เชื่อมโยงตัวแรกทำงานร่วมกับ Python 2.6 ได้หรือไม่ หน้าจอเริ่มต้นของการติดตั้งระบุว่าเป็นเพียง 2.5 - แต่ฉันคิดว่าคนที่สร้างมันขึ้นมาอาจจะไม่ได้อัปเดตเอกสารบรรทัดนั้น
John C

ฉันติดตั้ง python 2.7 x64 แต่ในขณะที่นำเข้า MySQLdb ฉันได้รับข้อผิดพลาด 'ImportError: ไม่มีโมดูลชื่อ _mysql_windows.api' กรุณาทุกคนช่วยฉันแก้ปัญหานี้
Vilva

4
หลังจากทำpip install pymysqlเสร็จsyncdbก็ยังบ่นเรื่องMySQLdbโมดูลที่หายไป
Shailen

ในขณะที่ฉันรันคำสั่งนี้ในระบบ 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

สิ่งนี้อาจอ่านเหมือนคำแนะนำของคุณปู่ givin แต่คำตอบทั้งหมดในที่นี้ไม่ได้กล่าวถึงวิธีที่ดีที่สุด: ไป nd ติดตั้งActivePythonแทน python.org windows binaries ฉันสงสัยมานานแล้วว่าทำไมการพัฒนา Python บน windows จึงเป็นไฟลนก้น - จนกระทั่งฉันติดตั้ง activestate python ฉันไม่มีส่วนเกี่ยวข้องกับพวกเขา มันเป็นเพียงความจริงธรรมดา เขียนไว้บนผนังทุกด้าน: การพัฒนา Python บน Windows = ActiveState ! คุณก็แค่นั้นpypm install mysql-pythonและทุกอย่างก็ราบรื่น ไม่มีการรวบรวมสนุกสนานกันอย่างเป็นบ้าเป็นหลัง ไม่มีข้อผิดพลาดแปลก ๆ ไม่มีความหวาดกลัว เพียงแค่เริ่มเขียนโค้ดและทำงานจริงหลังจากผ่านไปห้านาที นี่เป็นวิธีเดียวที่จะไปบน windows จริงๆ.


2
มันจะเป็นทางออกที่สมบูรณ์แบบหากไม่จำเป็นต้องสมัครสมาชิก Business Edition ...
Matheus Moreira

4
@ matheus.emm - Business Edition ไม่จำเป็นสำหรับการติดตั้ง MySQLdb บน Windows 32 บิต
Sridhar Ratnakumar

7
@ matheus.emm - สำหรับการเข้าถึงฟรีคุณสามารถติดตั้ง ActivePython 32 บิตบนระบบปฏิบัติการ Windows 7 64 บิตจากนั้นติดตั้ง mysql-python ActivePython 64 บิตต้องการการสมัครสมาชิก BE สำหรับการติดตั้งแพ็คเกจ
Sridhar Ratnakumar

2
นี่เป็นคำแนะนำที่ดี ฉันคิดว่า Business Edition คุ้มค่าหากคุณใช้ Python ในการผลิตอย่างจริงจัง หากคุณประหยัดเวลาทำงานได้สองสามชั่วโมงต่อเดือนคุณจะต้องจ่ายเอง อาการปวดหัวในการกำหนดค่าทั้งหมดนี้ทำให้ฉันจำรูปแบบธุรกิจโอเพนซอร์สได้: "ให้ซอฟต์แวร์ฟรีแก่พวกเขา แต่ทำให้ยากต่อการติดตั้งและใช้งานจำเป็นต้องซื้อคู่มือและ / หรือการสนับสนุน" ปัญหาเดียวคือโครงการเหล่านี้จำนวนมากไม่ได้ให้การสนับสนุนหรือขายการสนับสนุนเนื่องจากพวกเขามองว่าโอเพ่นซอร์สเป็นอุดมการณ์แทนที่จะเป็นรูปแบบธุรกิจที่ตั้งใจไว้ lolz
Dana Holt

1
เพิ่งติดตั้งโดยใช้ activepython community edition และทำงานได้อย่างมีเสน่ห์ ขอแนะนำ
Cleber Goncalves

15

ในฐานะมือใหม่ Python ที่เรียนรู้ระบบนิเวศของ Python ฉันเพิ่งทำสิ่งนี้เสร็จ

  1. ติดตั้งคำแนะนำ setuptools

  2. ติดตั้ง MySQL 5.1 ดาวน์โหลด MSI 97.6MB จากที่นี่คุณไม่สามารถใช้เวอร์ชันที่จำเป็นได้เนื่องจากไม่มีไลบรารี C
    อย่าลืมเลือกการติดตั้งแบบกำหนดเองและทำเครื่องหมายเครื่องมือการพัฒนา / ไลบรารีสำหรับการติดตั้งเนื่องจากไม่ได้ทำตามค่าเริ่มต้น สิ่งนี้จำเป็นเพื่อรับไฟล์ส่วนหัว C
    คุณสามารถตรวจสอบได้ว่าคุณได้ดำเนินการอย่างถูกต้องโดยดูในไดเรกทอรีการติดตั้งของคุณสำหรับโฟลเดอร์ชื่อ "รวม" เช่น 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 ในไดเรกทอรี temp ของคุณ C: \ temp \ sometempdir และแก้ไขการตั้งค่า "คีย์รีจิสทรี" เป็น:

    Registry_key = SOFTWARE \ MySQL AB \ MySQL Server 5.1

    ตอนนี้ซีดีลงในเครื่องควบคุมอุณหภูมิของคุณและ:

    python setup.py สะอาด

    python setup.py ติดตั้ง

    คุณควรเตรียมตัวให้พร้อม!

  6. นี่คือสคริปต์ที่เรียบง่ายสุด ๆ ในการเริ่มต้นการเรียนรู้ Python DB API สำหรับคุณ - หากคุณต้องการ


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: โมดูลชุดเลิกใช้งานจากชุดการนำเข้า ImmutableSet


5

แล้วpymysqlล่ะ? มันเป็น Python ที่บริสุทธิ์และฉันใช้มันบน Windows ประสบความสำเร็จอย่างมากโดยข้ามความยากลำบากในการรวบรวมและติดตั้ง mysql-python


2

คุณไม่ใช่คนเดียวที่มีปัญหากับ Python 2.6 และ MySQL ( http://blog.contriving.net/2009/03/04/using-python-26-mysql-on-windows-is-nearly-impossible/ ) . นี่คือคำอธิบายว่าควรทำงานอย่างไรภายใต้ Python 2.5 http://i.justrealized.com/2008/04/08/how-to-install-python-and-django-in-windows-vista/ ขอให้ โชคดี


2

มีไบนารีของ Windows สำหรับ MySQL หลาม (2.4 และ 2.5) ที่มีอยู่บน Sourceforge คุณลองเหล่านั้นหรือยัง?


ไบนารี 2.5 (และ 2.4) ไม่สามารถติดตั้งได้หากติดตั้งเพียง 2.6
David Sykes

นั่นจะเป็นเพราะเวอร์ชันต้องตรงกัน มีลิงค์ไปยัง MySQL-Python 2.6 สำหรับ Windows ในบล็อกโพสต์นี้ แต่ฉันยังไม่ได้ลอง: timvalenta.wordpress.com/2009/02/04/python-26-mysql
Dave Webb



2

คุณสามารถลองใช้ myPySQL ใช้งานง่ายมาก ไม่มีการคอมไพล์สำหรับ windows และแม้ว่าคุณจะต้องคอมไพล์ด้วยเหตุผลใดก็ตามคุณต้องติดตั้ง Python และ Visual C เท่านั้น (ไม่ใช่ mysql)

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

โชคดี


1

เนื่องจากฉันใช้งาน python ใน Virtualenv (pylons / pyramid) ฉันจึงไม่สามารถเรียกใช้โปรแกรมติดตั้งไบนารี (เป็นประโยชน์) ที่เชื่อมโยงกับก่อนหน้านี้

ฉันมีปัญหาในการทำตามขั้นตอนต่างๆด้วยคำตอบของ Willie แต่ฉันพบว่าปัญหาคือ (อาจเป็น) ที่ฉันใช้งานการติดตั้ง windows 7 x64 ซึ่งทำให้รีจิสทรีคีย์สำหรับ mysql อยู่ในตำแหน่งที่แตกต่างกันเล็กน้อยโดยเฉพาะในกรณีของฉัน (หมายเหตุ: ฉัน กำลังใช้เวอร์ชัน 5.5) ใน: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5"

อย่างไรก็ตามไม่สามารถรวม "HKEY_LOCAL_MACHINE \" ไว้ในเส้นทางมิฉะนั้นจะล้มเหลว

นอกจากนี้ฉันต้องทำการรีสตาร์ทระหว่างขั้นตอนที่ 3 และ 4

หลังจากทำงานทั้งหมดนี้แล้ว IMO มันจะฉลาดกว่าที่จะเรียกใช้สภาพแวดล้อม python dev ทั้งหมดจาก cygwin




0

คุณยังสามารถใช้pyodbcกับMySQL Connector / ODBCเพื่อใช้ MySQL บน Windows นอกจากนี้ยังมีUnixodbcเพื่อทำให้โค้ดเข้ากันได้กับ Linux Pyodbc ใช้ Python DB API 2.0มาตรฐานดังนั้นหากคุณยึดติดกับการสลับระหว่างไดรเวอร์ MySQL / PostgreSQL / SQLite / ODBC / JDBC เป็นต้นควรจะไม่เจ็บปวด



0

มีปัญหาในการติดตั้ง MySQLdb และลองใช้pymysqlแทน

ติดตั้งง่าย

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

และ API ก็ค่อนข้างเหมือนกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.