मैक ओएस एक्स - एनवायरनमेंटल: mysql_config नहीं मिला


121

सबसे पहले, हाँ, मैंने पहले ही यह देख लिया है:

पाइप स्थापित करें Mysql-python एन्वायरनमेंट के साथ विफल हो जाता है Error: mysql_config नहीं मिला

समस्या

मैं Google ऐप इंजन प्रोजेक्ट पर Django का उपयोग करने की कोशिश कर रहा हूं। हालाँकि, मैं शुरू नहीं कर पाया क्योंकि सर्वर ठीक से शुरू नहीं कर पा रहा है:

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

मैंने कुछ शोध किया था और यह सभी को मैसकल-पाइथन को स्थापित करने की ओर इशारा करता है, जैसा कि जाहिर है कि यह मेरे सिस्टम पर नहीं है। मैंने वास्तव में इसे अनइंस्टॉल करने की कोशिश की और यह मिल गया:

Cannot uninstall requirement mysql-python, not installed

जब भी मैं वास्तव में स्थापित करने की कोशिश करता हूं:

sudo pip install MySQL-python

मुझे एक त्रुटि बताते हुए कहा गया है:

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

मैंने पहले ही दौड़ने की कोशिश की है:

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

लेकिन इससे मुझे मदद नहीं मिली, क्योंकि मैंने इंस्टॉलेशन कमांड को फिर से चलाया और यह अभी भी विफल रहा।

कोई विचार?

कृपया ध्यान दें कि मैं एक virtualenv में नहीं हूँ।


आप हमेशा फ़ाइल को ऊपर जा सकते हैं EnvironmentErrorऔर अधिक उपयोगी डिबग जानकारी प्रिंट कर सकते हैं , जैसे os.getcwd()। आप pdb.set_trace()चीजों को जोड़ सकते हैं और समझ सकते हैं।
ilefonso

जवाबों:


340

ठीक है, ठीक है, सबसे पहले, मुझे जाँचने दें कि क्या मैं आपके जैसे ही पेज पर हूँ:

  • आपने अजगर को स्थापित किया
  • तुमने किया brew install mysql
  • तुमने किया export PATH=$PATH:/usr/local/mysql/bin
  • और अंत में, आपने किया pip install MySQL-Python(या pip3 install mysqlclientयदि अजगर 3 का उपयोग कर रहा है)

यदि आपने एक ही क्रम में उन सभी चरणों को किया था, और आपको अभी भी एक त्रुटि मिली है, तो अंत में पढ़ें, यदि, हालांकि, आपने शुरुआत से ही उनका अनुसरण करते हुए इन सटीक चरणों का पालन नहीं किया।

तो, आपने चरणों का पालन किया, और आप अभी भी एक त्रुटि प्राप्त कर रहे हैं, ठीक है, कुछ चीजें हैं जो आप कोशिश कर सकते हैं:

  1. which mysql_configबैश से दौड़ने की कोशिश करें । यह शायद नहीं मिलेगा। यही कारण है कि निर्माण या तो नहीं मिल रहा है। दौड़ने की कोशिश करें locate mysql_configऔर देखें कि क्या कुछ वापस आता है। इस बाइनरी के लिए पथ को आपके शेल के $ PATH पर्यावरण चर में होने की आवश्यकता है, या इसे सेटअप के लिए सेटअप फ़ाइल में स्पष्ट रूप से होना चाहिए, यह मानकर कि यह उस फ़ाइल के लिए कुछ विशिष्ट स्थान में दिख रहा है।

  2. MySQL-Python का उपयोग करने के बजाय, 'mysql-कनेक्टर-python' का उपयोग करने का प्रयास करें, इसे उपयोग करके इंस्टॉल किया जा सकता है pip install mysql-connector-python। इस पर अधिक जानकारी यहां और यहां देखी जा सकती है

  3. मैन्युअल रूप से 'mysql / bin', 'mysql_config', और 'MySQL-Python' का स्थान ढूंढें, और इन सभी को PATH पर्यावरण चर में जोड़ दें।

  4. यदि सब उपर्युक्त सभी चरण विफल है, तो आप 'mysql' MacPorts का उपयोग कर, जिस स्थिति में फ़ाइल 'mysql_config' वास्तव में 'mysql_config5' ही कहा जाता है स्थापित करने की कोशिश कर सकता है, और इस मामले में, आप स्थापित करने के बाद यह करने के लिए होगा: export PATH=$PATH:/opt/local/lib/mysql5/bin। आप यहां अधिक विवरण पा सकते हैं ।

नोट 1: मैंने कुछ लोगों को यह कहते हुए देखा है कि इंस्टॉल करना python-devऔर libmysqlclient-devमदद करना, हालांकि मुझे नहीं पता कि ये पैकेज मैक ओएस पर उपलब्ध हैं या नहीं।

नोट 2: इसके अलावा, कमांड को रूट के रूप में चलाने का प्रयास करना सुनिश्चित करें।

मुझे मेरे उत्तर (मेरे मस्तिष्क के अलावा) इन स्थानों से मिले (हो सकता है कि आप उन पर एक नज़र डाल सकें, यह देखने के लिए कि क्या यह मदद करेगा): 1 , 2 , 3 , 4

मुझे आशा है कि मैंने मदद की, और यह जानकर खुशी होगी कि इनमें से कोई काम किया या नहीं। सौभाग्य।


2
महान विवरण, लिनक्स पर FWIW, अजगर-देव और libmysqlclient-dev को स्थापित करना आमतौर पर केवल एक चीज है जिसे इसे काम करने के लिए करने की आवश्यकता है, लेकिन ओएक्सएक्स पर मुझे जो कुछ भी करने की ज़रूरत थी वह था मेरा स्नान अद्यतन करना। मेरा मानना ​​है कि अगर आप संकेतित देव पुस्तकालयों को स्थापित नहीं करते हैं तो आप mysql-python के लिए अजगर डिप्स प्राप्त किए बिना mysql स्थापित कर सकते हैं। (वह गलती कई बार सोई, लोल बनी)
इयान डंकन

1
योसेमाइट में अपग्रेड के बाद अब यह लापता "stdio.h" के बारे में भी शिकायत करता है। आप यहां जाकर इसे ठीक कर सकते हैं: stackoverflow.com/questions/19580758/…
Mihai Oprea

4
दौड़ कर brew install mysqlतय किया। इसके अलावा, इस कमांड which mysql-configने मेरे लिए काम नहीं किया, लेकिन which mysql_configकिया।
चाड

1
मुझे इस लाइन को अपनी .bash_profileफ़ाइल में भी जोड़ना था :export DYLD_LIBRARY_PATH=/usr/local/Cellar/mysql/5.7.9/lib/
JeffThompson

2
मुझे export PATH=$PATH:/usr/local/Cellar/mysql/5.7.20/bin
ब्रुअर्स

6

मैं हमेशा के लिए इस समस्या पर बहस कर रहा था - 3 घंटे 17 मिनट। मुझे विशेष रूप से गुस्सा आ रहा था कि मैं पहले से ही uni काम के माध्यम से अपने सिस्टम पर sql स्थापित कर चुका था, लेकिन pip / pip3 इसे पहचान नहीं रहा था। इन थ्रेड्स के ऊपर और कई अन्य जो मैंने इंटरनेट को बिखेर दिए थे वे समस्या को खत्म करने में सहायक थे लेकिन वास्तव में चीजों को हल नहीं करते थे।

उत्तर

पिप Homebrew निर्देशिका में mysql बायनेरिज़ की तलाश में है जो Macintosh HD @ के सापेक्ष स्थित है

/usr/local/Cellar/

इसलिए मैंने पाया कि इसके लिए आपको कुछ बदलाव करने की आवश्यकता है

चरण 1: MySql डाउनलोड करें यदि पहले से ऐसा नहीं किया गया है तो https://dev.mysql.com/downloads/

चरण 2: इसे Macintosh HD और सीडी के सापेक्ष लगाएँ

/usr/local/mysql/bin

चरण 3: एक बार वहाँ खुला टर्मिनल और पसंद का एक पाठ संपादक का उपयोग करें - मैं खुद एक नवोदित लड़का हूं इसलिए मैंने टाइप किया (स्वचालित रूप से मैक के साथ नहीं आता ... एक और दिन के लिए एक और कहानी)

nvim mysql_config

चरण 4: आप लगभग 112 रेखा पर देखेंगे

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

में बदलो

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

* आप देखेंगे कि इस फ़ाइल में केवल-पढ़ने की सुविधा है, यदि आपका उपयोग vim या neovim है

:w !sudo tee %

चरण 5: होम निर्देशिका में जाएं और .bash_profile फ़ाइल संपादित करें

cd ~

फिर

nvim .bash_profile

और जोड़

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

फ़ाइल को बचाने के लिए

चरण 6: Macintosh HD के सापेक्ष पथ का पता लगाते हैं और इसे जोड़ते हैं

cd /private/etc/

फिर

nvim paths

और जोड़

/usr/local/mysql/bin

* आप फिर से नोटिस करेंगे कि यह फ़ाइल केवल-पढ़ने के लिए उपयोग की है, यदि आपका vim या neovim उपयोग कर रहा है

:w !sudo tee % 

फिर

cd ~

फिर चलकर अपने परिवर्तनों के साथ टर्मिनल को रिफ्रेश करें

source .bash_profile

आखिरकार

pip3 install mysqlclient

और वियोला। याद रखें कि यह एक खिंचाव है।


मेरे libsअंदर mysql_configपहले से ही "चेंज टू" सेक्शन में वर्णित था। हालाँकि, PATH को जोड़ने से उस private/etcकी वैश्विक स्थापना की अनुमति देने में मदद करने mysqlclientसे पहले विफल हो रहा था।
मार्टिन-मार्टिन

5

यदि आप पूर्ण mysql को स्थापित नहीं करना चाहते हैं, तो हम इसे केवल mysqlclient स्थापित करके ठीक कर सकते हैं brew install mysqlclient एक बार cmd पूरा हो जाने पर यह नीचे की पंक्ति को जोड़ने के लिए कहेगा ~/.bash_profile:

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

टर्मिनल बंद करें और नया टर्मिनल शुरू करें और आगे बढ़ें pip install mysqlclient


3

मैं MacOS कैटालिना पर पायथन 3.6 चला रहा हूं। मेरा मुद्दा यह था कि मैंने स्थापित करने की कोशिश की mysqlclient==1.4.2.post1और यह mysql_config को फेंकता रहता है त्रुटि नहीं मिली।

इस मुद्दे को हल करने के लिए मैंने जो कदम उठाए हैं।

  1. का उपयोग कर mysql-कनेक्टर-c स्थापित करें (यदि आपके पास mysql पहले से ही अनलिंक स्थापित है brew unlink mysql) -brew install mysql-connector-c
  2. Mysql_config खोलें और लाइन 112 के आसपास फाइल को एडिट करें
# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
  1. brew info openssl - इससे आपको अधिक जानकारी मिलेगी कि PATH में ओपनसेल डालने के बारे में क्या किया जाना चाहिए
  2. चरण 3 के संबंध में, आपको PATH में खुलने के लिए यह करने की आवश्यकता है - echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
  3. कंपाइलर के लिए ओपनसेल खोजना - export LDFLAGS="-L/usr/local/opt/openssl/lib"
  4. कंपाइलर के लिए ओपनसेल खोजना - export CPPFLAGS="-I/usr/local/opt/openssl/include"

धन्यवाद! मैंने बहुत सी चीजों की कोशिश की और आपके तरीके ने मेरे लिए काम किया।
यगीमुत्सु

2

यह भी तब होता है जब मैं mysqlclient स्थापित कर रहा था,

$ pip install mysqlclient

User3429036 ने कहा,

$ brew install mysql

1

यह उत्तर मैकओएस उपयोगकर्ताओं के लिए है जो brewआधिकारिक तौर पर नहीं बल्कि इससे इंस्टॉल हुए थे .dmg/.pkg। वह इंस्टॉलर आपका संपादन करने में विफल रहता है PATH, जिससे चीजें बॉक्स से बाहर हो जाती हैं:

  1. सभी MySQL आदेशों की तरह mysql, mysqladmin, mysql_config, आदि नहीं पाया जा सकता है, और एक परिणाम के रूप में:
  2. "MySQL पसंद फलक" सिस्टम वरीयताएँ में प्रदर्शित करने में विफल रहता है, और
  3. आप MySQL के साथ संचार करने वाले किसी भी एपीआई को स्थापित नहीं कर सकते, सहित mysqlclient

आप क्या करना है MySQL जोड़कर है binफ़ोल्डर (आमतौर पर /usr/local/mysql/binअपने में PATHअपने में इस पंक्ति जोड़कर ~/.bash_profileफ़ाइल:

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

आपको ~/.bash_profileअपने वर्तमान टर्मिनल सत्र में प्रभावी होने के लिए परिवर्तन को फिर से लोड करना चाहिए :

source ~/.bash_profile

mysqlclientहालांकि स्थापित करने से पहले , आपको XcodeBuild लाइसेंस को स्वीकार करना होगा:

sudo xcodebuild -license

अपने परिवार को दूर करने के लिए उनके निर्देशों का पालन करें, जिसके बाद आपको mysqlclientसमस्या के बिना स्थापित करने में सक्षम होना चाहिए :

pip install mysqlclient

इसे स्थापित करने के बाद, आपको रनटाइम बग को ठीक करने के लिए एक और काम करना होगा जो कि MySQL ( डायनेमिक लाइब्रेरी libmysqlclient.dylibनहीं मिला ) के साथ इस लाइन को आपके सिस्टम डायनेमिक लाइब्रेरी पथ में जोड़कर:

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


मैंने sudo lsof -i :3306सक्रिय MySQL प्रक्रिया के PID को देखने के लिए डिस्क पर बायनेरिज़ ढूंढने के बाद आपका जवाब देखा और फिर sudo -P <pid>उस पर अपनी खुली फ़ाइलों को देखने के लिए दौड़ रहा था। यह /usr/local/mysql-8.0.18-macos10.14-x86_64/binमेरे साथ आया $PATHऔर मैंने वॉयला किया !
नील सी। ओब्राम्स्की 22

0

यदि आपने एक संस्करण निर्दिष्ट करके Homebrew का उपयोग करके mysql स्थापित किया है, तो mysql_config यहां मौजूद होगा। - --सर / लोलक / केलार / माइसक्ला@5.6/5.6.47/bin

आप / usr / स्थानीय / निर्देशिका में ls कमांड का उपयोग करके sql बिन का पथ पा सकते हैं

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

प्रोफ़ाइल को इस तरह से करने के लिए पथ जोड़ें।

nano ~/.bash_profile

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

0

मेरे मामले में समस्या यह थी कि मैं एक पायथन वर्चुअल वातावरण के अंदर कमांड चला रहा था और इसमें / usr / local / mysql / bin का रास्ता नहीं था, हालांकि मैंने इसे .bash_profile फ़ाइल में डाल दिया है। बस आभासी env में पथ का निर्यात मेरे लिए काम किया।

आपकी जानकारी के लिए sql_config बिन डायरेक्टरी के अंदर रहता है।


-1

इनवॉइस स्थापित करना या उपयुक्त होना भी मेरे लिए आसान नहीं है, इसलिए मैंने mysql को इसके माध्यम से डाउनलोड किया: https://dev.mysql.com/downloads/connector/python/ , इसे स्थापित किया। इसलिए मैं mysql_config int इस निर्देशिका को पा सकता हूं: / usr / स्थानीय / mysql / bin

अगला कदम है:

  1. निर्यात पथ = $ पथ: / usr / स्थानीय / mysql / बिन
  2. पाइप स्थापित करें MySQL-python == 1.2.5
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.