Mac OS X - Çevre Hatası: mysql_config bulunamadı


121

Öncelikle, evet, bunu zaten görmüştüm:

pip install mysql-python, EnvironmentError ile başarısız oluyor: mysql_config bulunamadı

Sorun

Django'yu bir Google App Engine projesinde kullanmaya çalışıyorum. Ancak, sunucu şu nedenlerden dolayı düzgün şekilde başlayamadığı için başlayamadım:

ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Biraz araştırma yaptım ve görünüşe göre sistemimde olmadığı için Mysql-python'u kurmam gerektiğine işaret etti. Aslında kaldırmayı denedim ve şunu anladım:

Cannot uninstall requirement mysql-python, not installed

Ne zaman gerçekten yüklemeyi denesem:

sudo pip install MySQL-python

Bunu belirten bir hata alıyorum:

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

Koşmayı zaten denedim:

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

ancak kurulum komutunu tekrar çalıştırdığım ve hala başarısız olduğu için bu yardımcı olmadı.

Herhangi bir fikir?

Lütfen bir sanal ortamda olmadığımı unutmayın.


İstediğiniz zaman dosyaya gidip EnvironmentErrordaha kullanışlı hata ayıklama bilgilerini yazdırabilirsiniz os.getcwd(). ayrıca bir pdb.set_trace()şeyler ekleyebilir ve bir şeyler çözebilirsiniz .
ealfonso

Yanıtlar:


340

Tamam, her şeyden önce, seninle aynı sayfada olup olmadığımı kontrol edeyim:

  • Python yüklediniz
  • Yaptın brew install mysql
  • Yaptın export PATH=$PATH:/usr/local/mysql/bin
  • Ve son olarak, yaptınız pip install MySQL-Python(veya pip3 install mysqlclientpython 3 kullanıyorsanız)

Tüm bu adımları aynı sırayla gerçekleştirdiyseniz ve hala bir hata alıyorsanız, sonuna kadar okuyun, ancak bu adımları tam olarak takip etmediyseniz, en baştan takip etmeyi deneyin.

Yani, adımları izlediniz ve hala bir hata alıyorsunuz, deneyebileceğiniz birkaç şey var:

  1. Bash'den koşmayı deneyin which mysql_config. Muhtemelen bulunmayacak. Bu yüzden yapı da onu bulamıyor. Koşmayı dene locate mysql_configve bir şey geri dönüp dönmediğini gör. Bu ikilinin yolunun ya kabuğunuzun $ PATH ortam değişkeninde olması ya da o dosya için belirli bir yere baktığını varsayarak modülün setup.py dosyasında açıkça bulunması gerekir.

  2. MySQL-Python kullanmak yerine, 'mysql-connector-python' kullanmayı deneyin, kullanılarak yüklenebilir pip install mysql-connector-python. Bununla ilgili daha fazla bilgi burada ve burada bulunabilir .

  3. El ile 'mysql / bin', 'mysql_config' ve 'MySQL-Python' konumunu bulun ve bunların tümünü $ PATH ortam değişkenine ekleyin.

  4. Her şeyden önce adımlar başarısız olursa, o zaman dosya 'mysql_config' aslında 'mysql_config5' denilen olacağını ve bu durumda MacPorts kullanarak 'mysql', yüklemeyi de deneyebilirsiniz, ve bu durumda, sen yükledikten sonra bunu yapmak zorunda olacaktır: export PATH=$PATH:/opt/local/lib/mysql5/bin. Daha fazla ayrıntıyı burada bulabilirsiniz .

Not 1: Bazı kişilerin yüklemeyi python-devve libmysqlclient-devayrıca yardımcı olduğunu söyleyenleri gördüm , ancak bu paketlerin Mac OS'de mevcut olup olmadığını bilmiyorum.

Not2: Ayrıca, komutları root olarak çalıştırmayı denediğinizden emin olun.

Cevaplarımı bu yerlerden (beynimin yanı sıra) aldım (yardımcı olup olmayacağını görmek için belki onlara bir bakabilirsin): 1 , 2 , 3 , 4 .

Yardımcı olduğumu umuyordum ve bunlardan herhangi birinin işe yarayıp yaramadığını bilmek beni mutlu ederdi. İyi şanslar.


2
Harika bir açıklama, linux üzerinde FWIW, python-dev ve libmysqlclient-dev'in yüklenmesi genellikle çalışmasını sağlamak için yapılması gereken tek şeydir, ancak osx'te tek yapmam gereken banyomu güncellemekti. Ben inanıyorum sen kütüphaneler belirtilen dev yüklemek yoksa mysql-python piton Deps almadan mysql yükleyebilirsiniz linux üzerinde. (Bu hatayı defalarca yaptım, lol)
Iain Duncan

1
Yosemite'e yükselttikten sonra artık "stdio.h" eksikliğinden de şikayet ediyor. Bunu
şuraya

4
Çalıştırmak brew install mysqlsorunu çözdü. Ayrıca bu komut which mysql-configbenim için işe yaramadı ama işe which mysql_configyaradı.
Çad

1
Ben de eklemek zorunda bu çizgiyi benim için .bash_profiledosyanın:export DYLD_LIBRARY_PATH=/usr/local/Cellar/mysql/5.7.9/lib/
JeffThompson

2
Brews kurulumunu işaret export PATH=$PATH:/usr/local/Cellar/mysql/5.7.20/bin
etmeliydim

6

Sonsuza kadar bu problemi çözüyordum - 3 saat 17 dakika. Beni özellikle rahatsız eden şey, sistemime daha önceki uni çalışma yoluyla zaten sql kurmuş olmamdı, ancak pip / pip3 bunu tanımıyordu. Yukarıdaki konular ve interneti araştırdığım diğer pek çok konu, sorunu çözmede yardımcı oldu, ancak aslında bir şeyleri çözmedi.

CEVAP

Pip, Homebrew Dizininde Macintosh HD @ ile ilişkili olan mysql ikili dosyalarını arıyor.

/usr/local/Cellar/

bu yüzden bunun birkaç değişiklik yapmanızı gerektirdiğini öğrendim

1. adım: Henüz yapılmadıysa MySql'i indirin https://dev.mysql.com/downloads/

Adım 2: Macintosh HD ve cd'ye göre bulun

/usr/local/mysql/bin

Adım 3: Bir kez orada terminali açın ve istediğiniz bir metin düzenleyiciyi kullanın - Ben de bir neovim adamıyım, bu yüzden yazdım (otomatik olarak Mac ile gelmiyor ... başka bir gün için başka bir hikaye)

nvim mysql_config

Adım 4: Yaklaşık 112 satırında göreceksiniz

# Create options 
libs="-L$pkglibdir"
libs="$libs -l "

Değişmek

# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

* Bu dosyanın salt okunur erişimi olduğunu fark edeceksiniz, bu nedenle vim veya neovim kullanıyorsanız

:w !sudo tee %

Adım 5: Ana dizine gidin ve .bash_profile dosyasını düzenleyin

cd ~

Sonra

nvim .bash_profile

ve Ekle

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

dosyaya sonra kaydet

Adım 6: Macintosh HD'ye göre yolları bulun ve ekleyin

cd /private/etc/

sonra

nvim paths

ve Ekle

/usr/local/mysql/bin

* Bu dosyanın salt okunur erişimi olduğunu tekrar fark edeceksiniz, bu nedenle vim veya neovim kullanıyorsanız

:w !sudo tee % 

sonra

cd ~

ardından, çalıştırarak terminali değişikliklerinizle yenileyin

source .bash_profile

En sonunda

pip3 install mysqlclient

Ve Viola. Bunun bir titreşim olduğunu unutmayın.


Benim libsmysql_configolarak zaten bölümüne "Değişim" tarif edilmiştir. Ancak, daha önce başarısız private/etcolan global yüklemeye izin vermek için PATH eklenmesi mysqlclient.
martin-martin

5

Tam mysql yüklemek istemiyorsanız, bunu sadece mysqlclient kurarak düzeltebiliriz. brew install mysqlclient Cmd tamamlandığında aşağıdaki satırın eklenmesini isteyecektir ~/.bash_profile:

echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile

Terminali kapatın ve yeni terminali başlatın ve devam edin pip install mysqlclient


3

MacOS Catalina'da Python 3.6 çalıştırıyorum. Benim sorunum yüklemeye mysqlclient==1.4.2.post1çalışmamdı ve mysql_config bulunamadı hatası atmaya devam ediyordu .

Sorunu çözmek için attığım adımlar bu.

  1. Mysql-connector-c'yi brew kullanarak kurun (eğer mysql zaten varsa önce bağlantıyı kaldırmayı kurduysanız brew unlink mysql) -brew install mysql-connector-c
  2. Mysql_config dosyasını açın ve 112. satırın etrafındaki dosyayı düzenleyin
# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
  1. brew info openssl - bu size openssl'yi PATH'a koyma konusunda yapılması gerekenler hakkında daha fazla bilgi verecektir.
  2. 3. adımla ilgili olarak, PATH içine openssl koymak için bunu yapmanız gerekir - echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
  3. derleyicilerin openssl'yi bulması için - export LDFLAGS="-L/usr/local/opt/openssl/lib"
  4. derleyicilerin openssl'yi bulması için - export CPPFLAGS="-I/usr/local/opt/openssl/include"

Teşekkür ederim! Çok şey denedim ve yönteminiz benim için çalıştı.
Yagimutsu

2

Ayrıca mysqlclient yüklerken de bu oluyor,

$ pip install mysqlclient

User3429036'nın dediği gibi,

$ brew install mysql

1

Bu cevap, brewresmi yüklemeden ziyade yükleme yapan MacOS kullanıcıları içindir .dmg/.pkg. Bu yükleyici, öğenizi düzenleyemez ve her PATHşeyin kutudan çıkmasına neden olur:

  1. Tüm MySQL komutları gibi mysql, mysqladmin, mysql_configvb ve sonuç olarak bulunamayan:
  2. "MySQL Tercihi Bölmesi" Sistem Tercihleri görünmesini başarısız olur ve
  3. dahil olmak üzere MySQL ile iletişim kuran herhangi bir API yükleyemezsiniz mysqlclient

Ne yapmak zorunda MySQL ekleme olduğu bintipik (klasör /usr/local/mysql/binGözlerinde farklı PATHsenin bu satırı ekleyerek ~/.bash_profiledosyada:

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

Ardından ~/.bash_profile, değişikliğin geçerli Terminal oturumunuzda etkili olması için hesabınızı yeniden yüklemelisiniz :

source ~/.bash_profile

mysqlclientAncak yüklemeden önce XcodeBuild lisansını kabul etmeniz gerekir:

sudo xcodebuild -license

Ailenizden ayrılmak için yönergelerini izleyin, ardından sorunsuz bir şekilde yükleyebilirsiniz mysqlclient:

pip install mysqlclient

Bunu yükledikten sonra, MySQL ( Dinamik Kitaplık libmysqlclient.dylibbulunamadı ) ile birlikte gelen bir çalışma zamanı hatasını düzeltmek için bu satırı sistem dinamik kitaplıkları yolunuza ekleyerek bir şey daha yapmalısınız :

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH


Diskteki ikili dosyaları bulduktan sonra cevabınızı sudo lsof -i :3306, aktif MySQL işleminin PID'sini görmeye ve ardından sudo -P <pid>açık dosyalarını görmek için çalıştırarak gördüm . /usr/local/mysql-8.0.18-macos10.14-x86_64/binEklediğim bu geldi $PATHve işte !
Neil C. Obremski

0

Eğer mysql'i Homebrew kullanarak bir sürüm belirleyerek kurduysanız, burada mysql_config mevcut olacaktır. - /usr/local/Cellar/mysql@5.6/5.6.47/bin

/ usr / local / dizinindeki ls komutunu kullanarak sql bin'in yolunu bulabilirsiniz.

/usr/local/Cellar/mysql@5.6/5.6.47/bin

Bash profilinin yolunu bu şekilde ekleyin.

nano ~/.bash_profile

export PATH="/usr/local/Cellar/mysql@5.6/5.6.47/bin:$PATH"

0

Benim durumumdaki sorun, komutu bir python sanal ortamında çalıştırıyor olmam ve onu .bash_profile dosyasına koymama rağmen / usr / local / mysql / bin yoluna sahip olmamamdı. Sadece sanal ortamdaki yolu dışa aktarmak benim için çalıştı.

Bilginiz için sql_config, bin dizini içinde bulunur.


-1

Brew veya apt-get'i kurmak benim için kolay değil, bu yüzden mysql'i şu adresten indirdim: https://dev.mysql.com/downloads/connector/python/ , yükledim. Böylece mysql_config'i bu dizinde bulabilirim: / usr / local / mysql / bin

sonraki adım:

  1. dışa aktarma PATH = $ PATH: / usr / local / mysql / bin
  2. pip MySQL-python == 1.2.5 kurun
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.