pip การติดตั้ง mysql-python ล้มเหลวด้วย EnvironmentError: mysql_config ไม่พบ


823

นี่เป็นข้อผิดพลาดที่ฉันได้รับ

(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python
Downloading/unpacking mysql-python
  Downloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloaded
  Running setup.py egg_info for package mysql-python
    sh: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    Complete output from command python setup.py egg_info:
    sh: mysql_config: not found

Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>

    metadata, options = get_config()

  File "setup_posix.py", line 43, in get_config

    libs = mysql_config("libs_r")

  File "setup_posix.py", line 24, in mysql_config

    raise EnvironmentError("%s not found" % (mysql_config.path,))

EnvironmentError: mysql_config not found

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/zjm1126/.pip/pip.log
(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python
Downloading/unpacking mysql-python
  Running setup.py egg_info for package mysql-python
    sh: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    Complete output from command python setup.py egg_info:
    sh: mysql_config: not found

Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>

    metadata, options = get_config()

  File "setup_posix.py", line 43, in get_config

    libs = mysql_config("libs_r")

  File "setup_posix.py", line 24, in mysql_config

    raise EnvironmentError("%s not found" % (mysql_config.path,))

EnvironmentError: mysql_config not found

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/zjm1126/.pip/pip.log

ฉันจะแก้ไขปัญหานี้ได้อย่างไร


1
ดูหัวข้อนี้: [mysql_config ไม่พบเมื่อติดตั้งอินเตอร์เฟส mysqldb หลาม] [1] ทำงานให้ฉัน :) [1]: stackoverflow.com/questions/7475223/ …
Staccato

ฉัน MAC OS ใช้ผมแก้ปัญหานี้เล็กน้อยคำถามนี้stackoverflow.com/questions/50940302/...
Patricios

คำตอบ:


1397

ดูเหมือนว่า mysql_config จะหายไปในระบบของคุณหรือติดตั้งไม่พบ ต้องแน่ใจว่าติดตั้ง mysql_config จริงๆ

ตัวอย่างเช่นบน Debian / Ubuntu คุณต้องติดตั้งแพ็คเกจ:

sudo apt-get install libmysqlclient-dev

บางที mysql_config ไม่ได้อยู่ในเส้นทางของคุณมันจะเป็นกรณีเมื่อคุณรวบรวมชุด mysql ด้วยตัวเอง

ปรับปรุง:สำหรับรุ่นล่าสุดของเดเบียน / อูบุนตู (ณ ปี 2018) เป็น

sudo apt install default-libmysqlclient-dev

24
ที่ยังคงสร้างข้อผิดพลาดสำหรับฉัน ฉันใช้apt-get install python-mysqldbแทน
Jonatan Littke

51
ประสบการณ์ 2c ของฉัน: ใช้sudo apt-get install libmysqlclient-devงานได้สำหรับฉันsudo apt-get install python-mysqldbไม่ได้ช่วย
Anentropic

20
@JonatanLittke การติดตั้ง python-mysqldb แบบโกลบอลเทียบกับจุดของ virtualenv IMO
fncomp

42
สำหรับ Mariadb sudo apt-get install libmariadbclient-devทำกลอุบาย
yuvilio

11
หากโซลูชันเหล่านี้ใช้ไม่ได้ผลกับคุณคุณอาจต้องติดตั้ง python-dev:apt-get install python-dev
Anoyz

295

ใน Mac OS ฉันเพียงแค่เรียกใช้ใน terminal เพื่อแก้ไข:

export PATH=$PATH:/usr/local/mysql/bin

นี่คือการแก้ไขที่เร็วที่สุดที่ฉันพบ - มันเพิ่มไปยังเส้นทาง แต่ฉันคิดว่าคุณควรเพิ่มอย่างถาวร (เช่นเพิ่มไป/etc/paths) ถ้าคุณวางแผนที่จะติดตั้ง MySQL-python ในสภาพแวดล้อมอื่น

(ทดสอบใน OSX Mountain Lion)


6
หากคุณกำลังใช้BitNami ของ MAMP สแต็คการใช้งานexport PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/binหากคุณกำลังใช้นี้สแต็ค MAMP เชิงพาณิชย์บนมืออื่น ๆ , ถอนการติดตั้งและได้รับ BitNami หนึ่งเพราะมันเป็นอึและไม่รวมถึงส่วนหัวของ MySQL
Timmmm

3
หากต้องการทำให้เส้นทางเป็นแบบถาวรให้เพิ่มที่ด้านล่างของ/etc/paths- คุณจะต้องเปิดหน้าต่างเทอร์มินัลใหม่เพื่อเข้าถึงเส้นทางใหม่
rojoca

@Timmmm แก้ปัญหาค่อนข้างแพงเพราะฐานข้อมูลทั้งหมดของฉันอยู่ในรุ่นอย่างเป็นทางการ: / มีวิธีอื่นในการเรียงลำดับออกหรือไม่
Volatil3

1
มีประโยชน์มาก หากคุณใช้ XAMPP ให้ใช้มันเป็นexport PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
Kevin London

10
ในที่สุดก็ใช้งานได้ขอบคุณ! หากmysqlไม่ได้รับการติดตั้งให้ใช้brew install mysqlตำแหน่งที่อยู่/usr/local/bin/mysql(หรือ/usr/local/Cellar/mysql/VERSION/bin/หากไม่มีการเชื่อมโยง)
Aziz Alto

102
apt-get install libmysqlclient-dev python-dev

ดูเหมือนว่าจะทำเคล็ดลับ


2
ใช่แล้วสำหรับฉันเพียงแค่ libmysqlclient-dev ก็ไม่เพียงพอ python-dev ก็หายไปเช่นกัน
Anderson Santos

บน Ubuntu 12.04 (แม่นยำ) (32 บิต) หลังจากอัปเกรด inplace จาก 10.04 (ชัดเจน) เพียงแค่นี้ก็สามารถแก้ไขข้อผิดพลาดเหล่านี้ได้ พิเศษ "python-dev" เพิ่มเติม!
น้ำแข็ง

ทำงานให้ฉันด้วย - python-dev เป็นชิ้นส่วนสุดท้ายของปริศนา ติดตั้ง python-mysqldb เรียบร้อยแล้วดังนั้นจึงไม่ใช่สิ่งที่จำเป็นทั้งหมด
Tim S.

UPDATE: สำหรับ Python3 python3-devคุณต้องติดตั้ง
cezar

ฉันต้องทำสิ่งนี้และติดตั้งgccเพื่อให้สามารถติดตั้งได้สำเร็จ นอกจากนี้ก็อาจจะดีที่สุดที่จะไม่ทำpython-devแต่ระบุรุ่นเฉพาะเช่นpython2.7-dev, python3.6-devฯลฯ
ทิม Tisdall

89

อาจมีคำตอบต่าง ๆ สำหรับปัญหาข้างต้นด้านล่างนี้เป็นคำตอบโดยรวม

สำหรับ Ubuntu:

$ sudo apt update
$ sudo apt install python-dev
$ sudo apt install python-MySQLdb

สำหรับ CentOS:

$ yum install python-devel mysql-devel

ขอบคุณสำหรับเคล็ดลับ centos ฉันไล่ตามนี้ทุกเช้า
Pete Magsig

อาจจะเพิ่มมูลค่า python3-dev/python3-devel
Gergely M

36

หากคุณอยู่ใน MAC ติดตั้งสิ่งนี้ทั่วโลก

brew install mysql

จากนั้นเส้นทางการส่งออกเช่นนี้

export PATH=$PATH:/usr/local/mysql/bin

มากกว่าทั่วโลกหรือใน venv ของคุณสิ่งที่คุณต้องการ

pip install MySQL-Python

หมายเหตุ: ทั่วโลกสำหรับ python3 เป็น Mac สามารถมีทั้ง python2 & 3

pip3 install MySQL-Python

34

คุณสามารถใช้ MySQL Connector / Python

ติดตั้งผ่าน PyPip

pip install mysql-connector-python

ดูข้อมูลเพิ่มเติมได้จากบล็อกประกาศ MySQL Connector / Python 1.0.5 เบต้า

บน Launchpad มีตัวอย่างที่ดีเกี่ยวกับวิธีการเพิ่มแก้ไขหรือลบข้อมูลด้วยไลบรารี


3
นี่เป็นสิ่งเดียวที่ทำงานสำหรับฉันเมื่อฉันยอมแพ้ mysqldb และความยุ่งเหยิงที่หายไปของ mysql_config ทำงานได้ดีสำหรับวัตถุประสงค์ของฉัน
wh1tney

@wjoba คุณสามารถอธิบายเพิ่มเติมได้ไหม? ฉันกำลังติดตั้งpy-mysql2pgsqlและค้นหาข้อผิดพลาดของสิ่ง mysql_config ฉันกำลังใช้ MAMP ตัวเชื่อมต่อ mysqk ทำหน้าที่อะไร?
Volatil3

1
@ Volatil3 mysql-connector-python ทำงานได้ดีเช่นเดียวกับการแทนที่แบบกล่องนอกสำหรับ mysql-python สำหรับฉัน การติดตั้งอดีตผ่าน pip ทำงานได้โดยไม่มีปัญหาและกำจัดข้อผิดพลาด mysql_config เพราะ (ในคำพูดของ dev เอง) ตัวเชื่อมต่อ mysql คือ "pure Python และไม่ต้องการซอฟต์แวร์ MySQL อื่น ๆ ดังนั้นจึงไม่มี C library และการคอมไพล์" หวังว่าจะช่วย ลองการติดตั้งที่กล่าวถึงในการแก้ไขปัญหานี้และดูว่าคุณยังคงพบข้อผิดพลาด
wh1tney

บน Ubuntu 14/4 ฉันได้รับ: ไม่พบการดาวน์โหลดใด ๆ ที่ตอบสนองความต้องการ MySQL ขั้วต่อหลาม
Timo

คำสั่งนี้ใช้ได้สำหรับฉันหลังจากลองทุกอย่างอื่น
นาฬิกา

27

สำหรับผู้ใช้centos :

yum install -y mysql-devel python-devel python-setuptools

แล้วก็

pip install MySQL-python


หากวิธีนี้ใช้ไม่ได้ผลและพิมพ์ข้อผิดพลาดคอมไพล์ gcc เช่น:
_mysql.c:29:20: error: Python.h: No such file or directory

คุณต้องระบุเส้นทางของPython.hเช่นนี้:
pip install --global-option=build_ext --global-option="-I/usr/include/python2.6" MySQL-python


1
ฟังดูราวกับว่าคุณไม่มีไฟล์รวมที่ถูกต้องสำหรับ Python ไบนารีpipกำลังติดตั้ง โดยปกติแล้ว Python จะจัดเตรียมตำแหน่งรวมไว้; ด้วยตนเองระบุเส้นทางส่วนใหญ่มีแนวโน้มจะชี้ไปที่รุ่นที่ไม่ถูกต้อง
Martijn Pieters

ฉันต้องทำsudo pip install MySQL-pythonเนื่องจากข้อผิดพลาด:copying build/lib.linux-x86_64-2.7/_mysql_exceptions.py -> /usr/lib64/python2.7/site-packages error: /usr/lib64/python2.7/site-packages/_mysql_exceptions.py: Permission denied
bennythejudge

18

ฉันพยายามติดตั้งmysql-pythonบนอินสแตนซ์ Amazon EC2 Linux และฉันต้องติดตั้งสิ่งเหล่านี้:

yum install mysql mysql-devel mysql-common mysql-libs gcc

แต่ฉันได้รับข้อผิดพลาดนี้:

_mysql.c:29:20: fatal error: Python.h: No such file or directory

ดังนั้นฉันติดตั้ง:

yum install python-devel

และนั่นก็เป็นกลอุบาย


1
ฉันใช้: sudo yum install mysql mysql-devel mysql-common mysql-libs gcc นอก virtualenv ของฉัน จากนั้นฉันกลับไปที่ env เสมือนจริงของฉันและวิ่งpip install mysql-pythonและมันทำงานได้
tandy

1
dnf install mysql-devel gccเพียงพอสำหรับฉันมันขึ้นอยู่กับส่วนที่เหลือ
Jens Timmerman

python-develตอนนี้จะให้ข้อผิดพลาดถ้าใช้ python 2.7 ลองนี้python27-devel
รหัส Sizzling

8

สำหรับทุกคนที่ใช้ MariaDB แทน MySQL ทางออกคือการติดตั้งlibmariadbclient-devแพ็กเกจและสร้างลิงค์สัญลักษณ์ไปยังไฟล์ปรับแต่งด้วยชื่อที่ถูกต้อง

เช่นนี้ใช้ได้สำหรับฉัน:

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config

2
นี่เป็นคำตอบที่ไม่ค่อยเป็นประโยชน์ในทุกกรณีที่ใครต้องการเชื่อมต่อกับซ็อกเก็ตฐานข้อมูลที่รู้จัก มันช่วยให้ฉันเชื่อมต่อกับฐานข้อมูล mysql แบบสแตนด์อโลน โซลูชันส่วนใหญ่ที่นี่เพียงแนะนำให้ติดตั้งใหม่ (หรือติดตั้งไคลเอนต์ที่สองหรือสาม ... ฯลฯ ) msql!
7yl4r


6

OSX Mavericks

เนื่องจากการเปลี่ยนแปลงภายในเครื่องมือพัฒนาเครื่องมือทำข้อมูล osx mavericks & xcode คุณอาจได้รับข้อผิดพลาดในการติดตั้ง

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

ดังนั้นใช้:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mysql-python


5

สำหรับ mariadb ติดตั้งlib mariadb client-devแทนlibmysqlclient-dev

sudo apt-get install libmariadbclient-dev

สิ่งที่ฉันต้องการเมื่อใช้ Debian 9 Stretch กับ MariaDB
anhtran

4

คุณควรติดตั้งmysqlครั้งแรก:

yum install python-devel mysql-community-devel -y

จากนั้นคุณสามารถติดตั้งmysqlclient:

pip install  mysqlclient

2

บางครั้งข้อผิดพลาดขึ้นอยู่กับสาเหตุที่แท้จริง เรามีกรณีที่ติดตั้ง mysql-python ผ่านแพ็คเกจ python-mysqldb debian

นักพัฒนาซอฟต์แวร์ที่ไม่ทราบว่าทำงานไปโดยไม่ตั้งใจpip uninstall mysql-pythonแล้วไม่สามารถกู้คืนได้โดยpip install mysql-pythonให้ข้อผิดพลาดด้านบน

pip uninstall mysql-pythonได้ทำลายเนื้อหาแพคเกจเดเบียนและแน่นอนpip install mysql-pythonล้มเหลวเพราะแพคเกจเดเบียนไม่จำเป็นต้องมีไฟล์ dev ใด ๆ

โซลูชันที่ถูกต้องในกรณีนั้นคือapt-get install --reinstall python-mysqldbmysql-python ที่กู้คืนสู่สถานะดั้งเดิม


2

ฉันมีปัญหาเดียวกันใน Terraform: กล่องไฟ มันขึ้นอยู่กับอัลไพน์

ที่นั่นคุณต้องติดตั้ง mariadb-dev ด้วย:

apk add mariadb-dev

แต่นั่นไม่เพียงพอเพราะยังมีการพึ่งพาอื่น ๆ ทั้งหมด:

apk add python2 py2-pip gcc python2-dev musl-dev

2

ลำดับที่จะต้องปฏิบัติตาม

pip install mysqlclient
sudo apt-get install python3-dev libmysqlclient-dev
pip install configparser 
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 

จากนั้นลองติดตั้ง MYSQL-python อีกครั้ง ที่ทำงานให้ฉัน


1

พบปัญหาที่คล้ายกันพยายามติดตั้งบน OS X Server 10.6.8 นี่คือสิ่งที่ฉันต้องทำ โดยใช้:

MySQL-python 1.2.4b4 (แหล่งที่มา) MySQL-5.6.19 (ตัวติดตั้งไบนารี) Python 2.7 (ตัวติดตั้งไบนารี) หมายเหตุ: การติดตั้งในระบบเสมือนจริง ...

เปิดเครื่องรูดซอร์สให้เปิด 'แจกจ่าย_setup.py' และแก้ไข DEFAULT_VERSION เพื่อใช้เครื่องมือแจกจ่ายเวอร์ชันล่าสุดดังนี้:

DEFAULT_VERSION = "0.6.49"

บันทึก เปิดไฟล์ 'site.cfg' และยกเลิกการคอมเม้นต์พา ธ ไปยัง mysql_config ดังนั้นจึงดูเหมือน (อ้างอิงพา ธ ของคุณเองไปยัง mysql_config):

# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
mysql_config = /usr/local/mysql/bin/mysql_config

ตอนนี้ทำความสะอาดสร้างและสร้างจะไม่ล้มเหลวด้วยข้อผิดพลาด 'mysql_config' ไม่พบ หวังว่านี่จะช่วยให้คนอื่นพยายามใช้ประโยชน์จาก xserves เก่าของพวกเขา :-)


1

เส้นทาง sudo ของคุณไม่ทราบเกี่ยวกับเส้นทางในพื้นที่ของคุณ ... เข้าสู่โหมด superuser เพิ่มเส้นทางและติดตั้งจากที่นั่น

sudo su
export PATH=$PATH:/usr/local/mysql/bin/
pip install mysql-python
exit

และคุณพร้อมใช้งานบน OSX ตอนนี้คุณมี python ระดับโลกที่อัปเดตแล้ว


1

ถ้าคุณติดตั้ง MySQL-python ใน env เสมือนของคุณคุณควรตรวจสอบเวอร์ชั่น pip ถ้าเวอร์ชั่นเก่ากว่า 9.0.1 โปรดอัปเดต

pip install --upgrade pip

ดูstackoverflow.com/questions/7475223/…ฉันไม่คิดว่าคำตอบของคุณจะช่วยได้
Linus

0

บน MacOS Mojave พบ mysql_config ที่ / usr / local / bin / แทนที่จะเป็น / usr / local / mysql / bin ดังที่ได้กล่าวไว้ข้างต้นดังนั้นไม่จำเป็นต้องเพิ่มอะไรลงในพา ธ

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