pip instal mysql-python gagal dengan EnvironmentError: mysql_config tidak ditemukan


823

Ini adalah kesalahan yang saya dapatkan

(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

Apa yang bisa saya lakukan untuk menyelesaikan ini?


1
Lihat utas ini: [mysql_config tidak ditemukan saat menginstal antarmuka python mysqldb] [1] bekerja untuk saya :) [1]: stackoverflow.com/questions/7475223/…
Staccato

Saya pengguna MAC OS Saya mengatasi masalah ini dengan pertanyaan ini stackoverflow.com/questions/50940302/…
PatricioS

Jawaban:


1398

Sepertinya mysql_config tidak ada di sistem Anda atau installer tidak dapat menemukannya. Pastikan mysql_config benar-benar diinstal.

Misalnya pada Debian / Ubuntu Anda harus menginstal paket:

sudo apt-get install libmysqlclient-dev

Mungkin mysql_config tidak ada di jalur Anda, itu akan menjadi kasus ketika Anda mengkompilasi sendiri suite mysql.

Pembaruan: Untuk versi terbaru dari debian / ubuntu (per 2018) itu

sudo apt install default-libmysqlclient-dev

24
Itu masih membuat kesalahan bagi saya. Saya menggunakan apt-get install python-mysqldbsebagai gantinya.
Jonatan Littke

51
pengalaman 2c saya: sudo apt-get install libmysqlclient-devbekerja untuk saya, sudo apt-get install python-mysqldbtidak membantu
Anentropic

20
@JonatanLittke Menginstal jenis global python-mysqldb bertentangan dengan titik virtualenv IMO.
fncomp

42
untuk Mariadb, sudo apt-get install libmariadbclient-devlakukan triknya.
yuvilio

11
Jika solusi ini tidak bekerja untuk Anda, maka Anda mungkin masih perlu menginstal python-dev:apt-get install python-dev
Anoyz

295

Di Mac OS, saya menjalankan terminal ini untuk memperbaikinya:

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

Ini adalah perbaikan tercepat yang saya temukan - ini menambahkannya ke jalur, tapi saya pikir Anda lebih baik menambahkannya secara permanen (yaitu menambahkannya /etc/paths) jika Anda berencana untuk menginstal MySQL-python di lingkungan lain.

(diuji dalam OSX Mountain Lion)


6
Jika Anda menggunakan tumpukan MAMP bitnami gunakan export PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/binJika Anda menggunakan tumpukan MAMP komersial ini , di sisi lain, copot dan dapatkan bitnami karena itu omong kosong dan tidak termasuk header mysql.
Timmmm

3
Untuk membuat jalur permanen tambahkan ke bagian bawah /etc/paths- Anda harus membuka jendela terminal baru untuk mengakses jalur baru.
rojoca

@Timmmm Solusi yang cukup mahal karena semua Database saya ada di versi resmi: / apakah ada cara lain untuk menyelesaikan masalah ini?
Volatil3

1
Sangat membantu. Jika Anda menggunakan XAMPP, gunakan sebagaiexport PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
Kevin London

10
Ini akhirnya berhasil, terima kasih! juga jika mysqltidak diinstal, gunakan di brew install mysqlmana lokasi itu /usr/local/bin/mysql(atau /usr/local/Cellar/mysql/VERSION/bin/jika tidak terhubung).
Aziz Alto

102
apt-get install libmysqlclient-dev python-dev

Tampak melakukan trik.


2
ya, bagi saya hanya libmysqlclient-dev tidak cukup, python-dev juga hilang.
Anderson Santos

Pada Ubuntu 12,04 (tepat) (32-Bit) setelah upgrade inplace dari 10,04 (jelas) hanya ini yang memecahkan kesalahan ini. Khususnya "python-dev" tambahan!
Es

Bekerja untuk saya juga - python-dev adalah bagian terakhir dari teka-teki. Sudah menginstal python-mysqldb, jadi itu jelas tidak semua yang dibutuhkan.
Tim S.

Perbarui: untuk Python3 Anda harus menginstal python3-dev.
cezar

Saya perlu melakukan ini dan juga menginstal gccuntuk mendapatkan instalasi yang sukses. Juga, itu mungkin yang terbaik untuk tidak melakukan python-dev, tetapi menentukan versi tertentu seperti python2.7-dev, python3.6-dev, dll
Tim Tisdall

89

Mungkin ada berbagai jawaban untuk masalah di atas, di bawah ini adalah solusi agregat.

Untuk Ubuntu:

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

Untuk CentOS:

$ yum install python-devel mysql-devel

Terima kasih untuk tip centos. Saya sudah mengejar ini sepanjang pagi.
Pete Magsig

Mungkin layak ditambahkan python3-dev/python3-devel
Gergely M

36

Jika Anda menggunakan MAC Instal ini secara global

brew install mysql

lalu ekspor jalur seperti ini

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

Dari global atau di venv Anda apa pun yang Anda suka

pip install MySQL-Python

Catatan: secara global untuk python3 karena Mac dapat memiliki kedua python2 & 3

pip3 install MySQL-Python

34

Anda dapat menggunakan Konektor MySQL / Python

Instalasi melalui PyPip

pip install mysql-connector-python

Informasi lebih lanjut dapat ditemukan di pengumuman MySQL Connector / Python 1.0.5 beta blog .

Di Launchpad ada contoh yang baik tentang cara menambah, mengedit, atau menghapus data dengan perpustakaan.


3
Ini adalah satu-satunya hal yang bekerja untuk saya ketika saya menyerah pada mysqldb dan kekacauan mysql_config yang hilang. Bekerja dengan baik untuk tujuan saya.
wh1tney

@wjoba dapat Anda jelaskan lebih lanjut? Saya menginstal py-mysql2pgsqldan menemukan kesalahan pada hal mysql_config. Saya menggunakan MAMP. Apa yang dilakukan konektor mysqk?
Volatil3

1
@ Volatil3 mysql-connector-python bekerja dengan baik sebagai pengganti out-of-the-box untuk mysql-python untuk saya. Menginstal yang pertama melalui pip bekerja tanpa masalah dan menyingkirkan kesalahan mysql_config karena (dalam kata-kata dev sendiri) konektor mysql adalah "Python murni dan tidak memerlukan perangkat lunak MySQL lainnya, sehingga tidak ada perpustakaan C dan kompilasi." Semoga itu bisa membantu. Coba instalasi yang disebutkan dalam solusi ini dan lihat apakah Anda masih menemukan kesalahan.
wh1tney

Di Ubuntu 14/4, saya mendapatkan: Tidak dapat menemukan unduhan yang memenuhi persyaratan mysql-connector-python
Timo

Perintah ini bekerja untuk saya setelah mencoba yang lainnya.
Jam

27

Untuk pengguna centos :

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

kemudian

pip install MySQL-python


Jika solusi ini tidak berhasil , dan cetak kesalahan kompilasi gcc seperti:
_mysql.c:29:20: error: Python.h: No such file or directory

Anda perlu menentukan jalur Python.h, seperti ini:
pip install --global-option=build_ext --global-option="-I/usr/include/python2.6" MySQL-python


1
Kedengarannya seolah-olah Anda tidak memiliki hak untuk memasukkan file untuk pipmenginstal biner Python . Python sendiri biasanya menyediakan lokasi sertakan; secara manual menentukan jalur yang paling mungkin menunjuk ke versi yang salah .
Martijn Pieters

Saya harus melakukan sudo pip install MySQL-pythonkarena kesalahan: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

Saya mencoba untuk menginstal mysql-pythonpada contoh Amazon EC2 Linux dan saya harus menginstal ini:

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

Tapi kemudian saya mendapatkan kesalahan ini:

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

Jadi saya menginstal:

yum install python-devel

Dan itu berhasil.


1
Saya menggunakan: di sudo yum install mysql mysql-devel mysql-common mysql-libs gcc luar virtualenv saya. Kemudian, saya kembali ke virtual env saya dan berlari pip install mysql-pythondan itu berhasil.
tandy

1
dnf install mysql-devel gccsudah cukup bagi saya, itu tergantung pada yang lain
Jens Timmerman

python-develsekarang akan memberikan kesalahan, jika menggunakan python 2.7 coba inipython27-devel
Sizzling Code

8

Bagi siapa saja yang menggunakan MariaDB bukan MySQL, solusinya adalah menginstal libmariadbclient-dev paket dan membuat tautan simbolis ke file konfigurasi dengan nama yang benar.

Misalnya ini bekerja untuk saya:

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

2
Ini adalah jawaban yang kurang dihargai yang berguna dalam kasus apa pun di mana seseorang ingin terhubung ke soket basis data tertentu yang diketahui. Ini membantu saya terhubung ke database mysql mandiri. Sebagian besar solusi di sini hanya merekomendasikan menginstal ulang (atau menginstal klien msql kedua atau ketiga ... dll)!
7yl4r


6

OSX Mavericks

Karena perubahan dalam osx mavericks & alat pengembangan xcode Anda mungkin mendapatkan kesalahan saat instalasi

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

oleh karena itu gunakan:

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

6

Untuk Linux

ini bekerja untuk saya

yum install python-devel mysql-devel

5

untuk mariadb instal lib mariadb client-dev, bukan libmysqlclient-dev

sudo apt-get install libmariadbclient-dev

Apa yang saya butuhkan saat menggunakan Debian 9 Stretch dengan MariaDB
anhtran

4

Anda harus menginstal yang mysqlpertama:

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

Kemudian Anda dapat menginstal mysqlclient:

pip install  mysqlclient

2

terkadang kesalahan tergantung pada penyebab sebenarnya. kami memiliki kasus di mana mysql-python diinstal melalui paket debian python-mysqldb.

seorang pengembang yang tidak mengetahui hal ini, secara tidak sengaja berlari pip uninstall mysql-pythondan kemudian gagal memulihkan dengan pip install mysql-pythonmemberikan kesalahan di atas.

pip uninstall mysql-pythontelah menghancurkan isi paket debian, dan tentu saja pip install mysql-pythongagal karena paket debian tidak memerlukan file dev.

solusi yang benar dalam hal ini adalah apt-get install --reinstall python-mysqldbyang mengembalikan mysql-python ke keadaan semula.


2

Saya memiliki masalah yang sama di Terraform: wadah cahaya. Itu didasarkan pada Alpine.

Di sana Anda harus menginstal mariadb-dev dengan:

apk add mariadb-dev

Tapi itu tidak cukup karena semua dependensi lainnya juga terlewatkan:

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

2

Urutan yang harus diikuti.

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 

Kemudian cobalah untuk menginstal MYSQL-python lagi. Itu berhasil bagi saya


1

Punya masalah serupa mencoba menginstal pada OS X Server 10.6.8. Inilah yang harus saya lakukan. Menggunakan:

MySQL-python 1.2.4b4 (sumber) MySQL-5.6.19 (penginstal biner) Python 2.7 (penginstal biner) CATATAN: Menginstal dalam ...

Unzip sumber, buka 'distribut_setup.py' dan edit DEFAULT_VERSION untuk menggunakan versi terbaru alat distribusi, seperti:

DEFAULT_VERSION = "0.6.49"

Menyimpan. Buka file 'site.cfg' dan batalkan komentar pada path ke mysql_config sehingga terlihat seperti (referensi path Anda sendiri ke 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

Sekarang bersihkan, bangun dan buat tidak akan gagal dengan kesalahan 'mysql_config' tidak ditemukan. Semoga ini bisa membantu orang lain yang mencoba memanfaatkan xserves lama mereka :-)


1

Jalur sudo Anda tidak tahu tentang jalur lokal Anda ... masuk ke mode superuser, tambahkan jalur, dan instal dari sana.

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

Dan Anda bangun dan berjalan di OSX. Sekarang Anda memiliki python global yang diperbarui.



0

pada MacOS Mojave, mysql_config ditemukan di / usr / local / bin / daripada / usr / local / mysql / bin seperti yang ditunjukkan di atas, jadi tidak perlu menambahkan apa pun ke path.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.