mysqldb python arabirimi yüklenirken mysql_config bulunamadı


478

Ben ssh üzerinden bağlı linux sunucusunda çalıştırmak için bir Python komut dosyası almaya çalışıyorum. Komut dosyası mysqldb kullanır. İhtiyacım olan diğer tüm bileşenlere sahibim, ancak mySQLdb'yi böyle kurulum araçlarıyla yüklemeye çalıştığımda :,

python setup.py install

Komutla ilgili aşağıdaki hata raporunu alıyorum mysql_config.

sh: mysql_config: command not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

Başka kimse bu hatayla karşılaştı ve eğer öyleyse nasıl çözdünüz / başarıyla mysqldb yüklemek için ne yapabilirim?


1
Merhaba @ user904542 - Umarım biraz daha özlü hale getirmek ve size bazı cevaplar almak için sorunuzu düzenledim :) Beğenmediyseniz veya ek ayrıntılar vermek istiyorsanız, doğrudan sorunuzun altında bir düzenleme bağlantısı vardır. orijinalinize geri almak veya yaptığım değişikliklere eklemek için kullanabilirsiniz.

3
Kaynaktan mysql yükledim çünkü ben aynı sorunu koştu. siz de yaparsanız, mysql_config'i kullanılabilir yapmak için böyle bir şey çalıştırın: sudo ln -s / usr / local / mysql / bin / mysql_config / usr / bin / mysql_config veya yolunuza / usr / local / mysql / bin / ekleyin.
Thi Duong Nguyen

Mysql'i zaten yüklediyseniz, Thi Duong Nguyen tarafından yapılan yukarıdaki yorum, python'un arayacağı yoldaki / usr / bin dizinindeki mysql_config dosyasına bir sembolik bağlantı oluşturarak sorunu çözer.
Alex Boschmans

2
sadece bunu yap ------------- apt-get install python-mysqldb
shadow0359

@AlexBoschmans symlinking /usr/binyanlış, Thi'nin cevabına usr/local/my...bakın.
Timo

Yanıtlar:


701

mySQLdb mysql için bir python arayüzüdür, ancak mysql'in kendisi değildir. Ve görünüşe göre mySQLdb 'mysql_config' komutuna ihtiyaç duyuyor, bu yüzden önce bunu yüklemeniz gerekiyor.

Kabuktan "mysql" çalıştırarak mysql'in kendisini yüklediğinizi veya yüklemediğinizi onaylayabilir misiniz? Bu size "mysql: komut bulunamadı" dışında bir yanıt vermelidir.

Hangi linux dağıtımını kullanıyorsunuz? Mysql çoğu linux dağıtımı için önceden paketlenmiştir. Örneğin, debian / ubuntu için, mysql'i kurmak kadar kolaydır

sudo apt-get install mysql-server

mysql-config, (debian / ubuntu varsayarak) yüklenebilecek farklı bir pakette:

sudo apt-get install libmysqlclient-dev

mariadb kullanıyorsanız, mysql yerine düşen damla, sonra çalıştırın

sudo apt-get install libmariadbclient-dev

Referans: https://github.com/JudgeGirl/Judge-sender/issues/4#issuecomment-186542797


1
Paket listeleri okunuyor ... Bitti Bina bağımlılık ağacı Durum bilgilerini okuma ... Bitti Not, libmysqlclient-dev yerine libmysqlclient15-dev seçimi Bazı paketler yüklenemedi. Bu, imkansız bir durum talep ettiğiniz veya bazı gerekli paketlerin henüz oluşturulmadığı veya Gelen'in dışına taşınamadığı kararsız dağıtım kullanıyorsanız anlamına gelebilir. Aşağıdaki bilgiler durumu çözmenize yardımcı olabilir: Aşağıdaki paketlerin karşılanmamış bağımlılıkları vardır: libmysqlclient15-dev: Bağımlı: zlib1g-dev ancak yüklenmeyecek E: Bozuk paketler
user904542 19:11

2
'Sudo apt-get install mysql' 'sudo apt-get install mysql-server' olmalı mı?
Kohanz

4
Debian için bunun sudo apt-get install mysql-server vesudo apt-get install mysql-client
Marc Juchli

2
Sonunda 'pip'in muazzam bir başarısızlık olduğunu kabul edebilir miyiz? Bunun gibi hatalar böyle bir acıdır ve paketlerin çoğunda gerçekleşiyor gibi görünüyor. Python'un paket yönetimi için yeni bir çözüme ihtiyacı var.
Eddie Sullivan

3
Debian'da benim için libmysqlclient-dev oldu. Aslında hem libmariadbclient-dev libmysqlclient-dev'i kurdum
mirek

187

python-mysqlKullanarak Ubuntu 12.04 üzerine yüklüyordum

pip install mysql-python

İlk önce aynı problemi yaşadım:

Not Found "mysql_config"

Bu benim için çalıştı

$ sudo apt-get install libmysqlclient-dev

Sonra bu sorunu yaşadım:

...
_mysql.c:29:20: error fatal: Python.h: No existe el archivo o el directorio

compilación terminada.

error: command 'gcc' failed with exit status 1

Sonra denedim

apt-get install python-dev

Ve sonra mutluydum :)

pip install mysql-python
    Installing collected packages: mysql-python
      Running setup.py install for mysql-python
        building '_mysql' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'beta',4) -D__version__=1.2.4b4 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g
        In file included from _mysql.c:44:0:
        /usr/include/mysql/my_config.h:422:0: aviso: se redefinió "HAVE_WCSCOLL" [activado por defecto]
        /usr/include/python2.7/pyconfig.h:890:0: nota: esta es la ubicación de la definición previa
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so

Successfully installed mysql-python
Cleaning up...

1
"Libmysqlclient-dev" ifadesinin "libmysqlclient-devel" olduğu openSUSE üzerinde de çalışır. Şimdi pip paketi iyi kuruluyor. Teşekkürler.
pbarill

Teşekkürler! Ubuntu üzerinde de çalışıyor 14.04.1 LTS
Krasimir

python dev üstbilgilerinin yüklenmesi eksik Python.h hatasını çözdü. Teşekkürler.
Natus Drew

3
python3.x kullanırsanız, apt-get install python3-dev ile denenir.
Legolas Bloom

Bu benim için 14.04'te işe yaramadı - "E: Paket 'python-dev' kurulum adayı yok"
Rene Wooller

46

(Mac OS X'e özgü)

Birçok şeyi denedim, ama bu komutlar sonunda benim için çalıştı.

  1. Yüklemek mysql
    brew install mysql
  2. brew unlink mysql
  3. brew install mysql-connector-c
  4. Mysql bin klasörünü PATH klasörüne ekle
    export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
  5. mkdir /usr/local/Cellar/lib/
  6. Bir sembolik bağlantı oluştur
    sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib
  7. brew reinstall openssl( kaynak )
  8. Son olarak, mysql-client'ı kurun
    LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ pip install mysqlclient

Güncelleme: Bu işe yaramazsa, @vinyll brew link mysql8. adımdan önce çalıştırılmasını önerir .


2
sadece 1-4 adımını uyguladıktan sonra çalıştı. Teşekkürler!
kujiy

Adım 4 brew info mysqliçin, mysql kurulumunun gerçek / doğru yolunu almak için kullanın . Sonra PATHdeğişikliği devam export PATH..ettirmek için ~ / .bash_profile dosyasında yapın.
Gino Mempin

adım 1-4 brew link --overwrite mysql-connector-cMac bilgisayarımda çalışıyor
Açlık

Sonunda, Catalina'm üzerinde çalışıyor. Belirtmek açık ssl belirtmek çok önemlidir.
Mart'ta

4
Çalıştırmak için brew link mysql8. adımdan önce bir şey yapmak zorunda kaldım .
vinyll

37

Red Hat'ta yapmak zorundaydım

sudo yum install mysql-devel gcc gcc-devel python-devel
sudo easy_install mysql-python

Sonra işe yaradı.


3
CentOS 7'de benim için çalıştı:yum install MySQL-python
hudolejev

2
Yüklemek gerekirse MySQL-pythonbir Python paketi olarak veya bu kudreti yardım VIRTUALENV kullanıyorsunuz: yum install mysql-devel; venv/bin/pip install MySQL-python.
Hudolejev

2
CentOS 7'de MariaDB kullanıyorsanız, sudo yum install mariadb-develönce çalıştırın , sonra mysqlclient'i yükleyebilirsinizpip install mysqlclient
Belter

gcc-devel rpm'yi nereden aldın?
Fayaz

yum install mysql-develCentos 8
Diego Andrés Díaz Espinoza

33

Aşağıdakiler benim için Ubuntu 12.04 LTS'de çalıştı:

apt-get install libmysqlclient-dev python-dev

Her ne kadar çalıştı, yine de aşağıdakileri yapmaya devam etti:

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

27

Yüklemeye çalışırken aynı hatayı aldım mysql-python.

Ben böyle düzelttim.

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

Sorun, yükleyicinin mysql_config dosyasını varsayılan yolda bulamamasıydı. Şimdi yapabilir .. ve işe yaradı ..

 15 warnings generated.
    clang -bundle -undefined dynamic_lookup -Wl,-F. build/temp.macosx-10.8-intel-2.7/_mysql.o -L/usr/local/mysql/lib -lmysqlclient_r -lz -lm -lmygcc -o build/lib.macosx-10.8-intel-2.7/_mysql.so -arch x86_64

Successfully installed mysql-python
Cleaning up...

Bu yardımcı olur umarım.

Teşekkürler.


Aynı sorunu OSX 10.9.4 (Mavericks) çalıştıran bir Mac'e yerel olarak MySQL'i yüklerken de yaşıyordum. Bu çözüm benim için de işe yaradı.
Deepend

20

Bu sorunu aşağıdaki adımlarla çözdüm:

sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo python setup.py install

1
> = Debian Stretch çalıştırırken default-libmysqlclient-dev, normal libmysqlclient-devpaketin kurulum adayı olmadığından , yüklediğinizden emin olun .
Bono

19

MPATH (mysql de) komutları eksik olabilir.

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


11

Adım 1: - Her ikisi de Python3 ve Python3-dev'i yükleyin

sudo apt-get install python3 python3-dev

Adım 2: - Python ve Mysql Konnektörünü Kurun

sudo apt-get install libmysqlclient-dev

step3: - Python mysql istemcisini yükleyin

sudo apt-get install mysqlclient

Bu sorununu çözecektir


Adım 2 bunu benim için düzeltti.
saltchicken

Bu 3 saat boyunca beni rahatsız etmişti benim sorunum çözüldü .. Çok teşekkür ederim !!!
Yeojin

10

MacOS kullanıyorsanız ve demlemek yoluyla zaten mysql@5.7 yüklüyse:

  1. brew install mysql-connector-c
  2. brew unlink mysql@5.7
  3. brew link --overwrite --dry-run mysql@5.7 ilk olarak, hangi sembollerin üzerine yazıldığını görmek için
  4. brew link --overwrite --force mysql@5.7 mysql ile ilişkili sembol bağlantılarının üzerine mysql@5.7 yazmak
  5. pip install mysqlclient

9

Ben libmysqlclient yükleyerek düzeltildi:

sudo apt-get install libmysqlclient16-dev

9

MySQL-pythonPaket kullanıyor mysql_confighakkında bilgi edinmek komutu mysqlBarındırıcınıza yapılandırma. Ana makinenizdemysql_config komutu yok.

Dev.mysql.com adresinden MySQL geliştirme kitaplıkları paketi (MySQL-devel-xxx) bu komutu ve MySQL-python paketi için gereken kitaplıkları sağlar. MySQL-develTopluluk sunucusu alanına - paketleri indir bulunur. MySQL geliştirme kütüphanesi paket isimleri MySQL-develMySQL sürümü ve linux platformuyla (ör MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm.)

Mysql sunucusu kurmanız gerekmediğini unutmayın.


8

Libmysqlclient-dev paketi kullanımdan kaldırılmıştır, bu yüzden düzeltmek için aşağıdaki komutu kullanın.

Libmysqlclient-dev paketi mevcut değil, ancak başka bir paket tarafından belirtiliyor. Bu, paketin eksik olduğu, eski olduğu veya yalnızca başka bir kaynaktan edinilebileceği anlamına gelebilir

sudo apt-get install default-libmysqlclient-dev

6

Centos 7'de bu benim için çalışıyor:

yum install mariadb-devel
pip install mysqlclient

5

Fedora 23 makinemde aşağıdakileri çalıştırmak zorunda kaldım:

sudo dnf install mysql-devel


4

Bence, aşağıdaki hatlar terminalde yürütülebilir

 sudo ln -s /usr/local/zend/mysql/bin/mysql_config /usr/sbin/

Bu mysql_config dizini MacOSx'ta zend sunucusu içindir. Bunu linux için aşağıdaki satırlar gibi yapabilirsiniz

sudo ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/

Bu varsayılan linux mysql dizinidir.


4

Bu sorunları vardı ve eğer bir symlink ekleyerek çözüldü mysql_config.

Homebrew ile mysql yükledim ve çıkışta bunu gördüm.

Error: The `brew link` step did not complete successfully

Nasıl aldığınıza bağlı olarak mysqlfarklı yerlerde olacak. Benim durumumda /usr/local/Cellar/mysql
Bir kez nerede olduğunu bildiğinizde python onu aradığı yere sembolik bir bağlantı ma mümkün olmalıdır. /usr/local/mysql

Bu benim için çalıştı.

ln -s /usr/local/Cellar/mysql/<< VERSION >>/bin/mysql_config   /usr/local/mysql/bin/mysql_config

4

Ben de aynı problemi yaşadım. Ben Ubuntu 16.04 python3-dev ile Python yüklemek için bu öğretici takip ederek çözüldü :

sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install -y python3-pip
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

Artık sanal ortamınızı ayarlayabilirsiniz:

sudo apt-get install -y python3-venv
pyvenv my_env
source my_env/bin/activate

3

Python-dev paketini kurmanız gerekir:

sudo apt-get install python-dev

2

sudo uygun-get install python-mysqldb

Python 2.5? Ubuntu Sunucusunun çok eski bir sürümünü kullandığınız anlaşılıyor (Hardy 8.04?) - lütfen sunucunun hangi Linux sürümünü kullandığını doğrulayın.

Ubuntu paket veritabanında python-mysql araması

Bazı ek bilgiler:

Mysql-python'un README'sinden -

Red Hat Linux .............

MySQL-python, Red Hat Linux 7.x ve daha yeni sürümlerinde önceden paketlenmiştir. Buna Fedora Core ve Red Hat Enterprise Linux da dahildir. Ayrıca yukarıda açıklandığı gibi kendi RPM paketlerinizi de oluşturabilirsiniz.

Debian GNU / Linux ................

python-mysqldb_ Olarak paketlenmiştir ::

# apt-get install python-mysqldb

Veya Synaptic kullanın.

.. _ python-mysqldb: http://packages.debian.org/python-mysqldb

Ubuntu ......

Debian ile aynı.

Dipnot: Gerçekten Ubuntu 10.04'ten daha eski bir sunucu dağıtımı kullanıyorsanız, resmi desteğin dışındasınız ve daha sonra değil, daha erken yükseltmelisiniz.


Debian 10 sudo apt-get install python-mysqldb için onaylayabilirim
Tedo Vrbanec


2

Bu yöntem yalnızca Mysql'in yüklü olduğunu bilenler içindir, ancak yine de mysql_config bulunamaz. Bu, python yüklemesi sistem yolunuzda mysql_config dosyasını bulamazsa, çoğunlukla yüklemeyi .dmg Mac Paketi ile yaptıysanız veya bazı özel yollara yüklediyseniz gerçekleşir. MySqlDB tarafından en kolay ve belgelenmiş yolu değiştirmektir site.cfg . Muhtemelen / usr / local / mysql / bin / dizininde bulunan mysql_config dosyasını bulun ve değişkeni mysql_config olarak değiştirin aşağıdaki gibi ve kurulumu tekrar çalıştırın. "#" İşaretini kaldırarak yorum eklemeyi kaldırmayı unutmayın

Satırın altını değiştir

"#mysql_config = / usr / local / bin / mysql_config"

için

"mysql_config = / usr / local / mysql / bin / mysql_config"

sisteminizdeki yola bağlı olarak.

Bu arada site.cfg'yi değiştirdikten sonra python yüklemesini kullandım

sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py kurulum


2

Şimdiye kadar, tüm çözümlerin (Linux) sudoyüklenmesi veya kök hakları gerekir. Kök haklarınız yoksa ve olmadan bir çözüm sudo. (hayır sudo apt install ...):

  1. Libmysqlclient-dev'in .deb dosyasını indirin, örneğin bu aynadan
  2. İndirilen dosyaya gidin ve çalıştırın dpkg -x libmysqlclient-dev_<version tag>.deb .Bu, adlı bir klasörü ayıklar usr.
  3. Symlink'inizde ./usr/bin/mysql_configbulunan bir yere gidin $PATH:

    ln -s `pwd` /usr/bin/mysql_config FOLDER_IN_YOUR_PATH

  4. Artık bulabilmeli mysql_config

Ubuntu 18.04'te test edildi.


Bu CentOS 7'de çalışıyor mu? Kök erişimi veya dpkg yüklü olmadığımı varsayarsak, ona nasıl yaklaşmalıyım?
Sohil

Kendi sanal ortamınızda çalıştığınız sürece root olmanıza gerek yok
BlackBear

2

MacOS Mojave için, ek yapılandırmalar gerekiyordu, derleyicilerin opensl'i bulması için ayarlamanız gerekebilir:

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"

2

2020 yılında bu sorunu çözmenin en uygun yolunun başka bir python paketi kullanmak olduğunu düşünüyorum. Başka bir ikili yazılım yüklememize gerek yoktur.

Bunu dene

pip install mysql-connector-python

ve sonra

import mysql.connector

mydb = mysql.connector.connect(
          host="",
          user="",
          passwd="",
          database=""
          )      
cursor = mydb.cursor( buffered=True)
cursor.execute('show tables;')
cursor.execute('insert into test values (null, "a",10)')
mydb.commit()
mydb.disconnect()


1

Aynı sorunla karşılaştım, sadece * mysql_config * ortam değişkeninin PATH'de bulunduğu yolu ekledim ve benim için çalıştı.


1

sudo apt-get build-dep python-mysqldb paketi PIP / easy_install dizininden oluşturmak için tüm bağımlılıkları yükleyecek


1

Gerçek hata olduğu gibi

gcc ... -I/usr/include/python2.7 ...

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

ve python-dev veya python-devel paketlerini yükleyemiyorsanız, http://hg.python.org/ adresinden gerekli python kaynaklarının sürümüne sahip arşivi indirebilir ve başlıklar dosyalarını dahil etmek için uygun klasöre yerleştirebilirsiniz.


1

Sadece yaz:

$ sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python

Bu, bu sorunları çözecektir.


3
Eğer mysql_config ile ilgili bir hata alırsanız, istall this:sudo apt-get install libmysqlclient-dev
Luciano D. Mota

1

CentOS 7'de aşağıdakiler yapılmalıdır:

#step1:install mysql 
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

#step2:
sudo yum install mysql-devel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.