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?

zjm1126
sumber
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
Fbo
sumber
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)

Chris Villa
sumber
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.

steve-gregory
sumber
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
pengguna2886440
sumber
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
Zaman Afzal
sumber
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.

ndequeker
sumber
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

lancerex
sumber
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.

Emil Davtyan
sumber
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
Alexandru Chirila
sumber
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

Mencoba sudo apt-get build-dep python-mysqldb

Kalamavij
sumber
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
Thomas Schwärzl
sumber
6

Untuk Linux

ini bekerja untuk saya

yum install python-devel mysql-devel
sen dolar
sumber
5

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

sudo apt-get install libmariadbclient-dev
Dinesh Sharma
sumber
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
pesawat terbang
sumber
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.

eMBee
sumber
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
Alex
sumber
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

lakshmankashyap
sumber
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 :-)

Brad Herdson
sumber
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.

Paul Kenjora
sumber
1

jika Anda menginstal MySQL-python di virtual env Anda, Anda harus memeriksa versi pip, jika versi lebih lama dari 9.0.1, harap perbarui

pip install --upgrade pip
Albert Chen
sumber
Lihat stackoverflow.com/questions/7475223/... Saya tidak berpikir jawaban Anda akan membantu
Linus
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.

Avidan Efody
sumber