दिलचस्प पोस्ट
यूटीसी दिनांक समय स्थानीय तिथि समय में कनवर्ट करें … आपने अपने एंड्रॉयड मैनिफ़ेस्ट.एक्सएमएल में इस गतिविधि की घोषणा की है सी # के लिए क्या स्थिर विश्लेषण उपकरण उपलब्ध हैं? `स्तर <-` (यह क्या जादू है? सी # में विविध कीवर्ड का उपयोग मैं एक XPath अभिव्यक्ति में एक Regex का उपयोग कर सकता हूँ? PHP में उपयोगी त्रुटि संदेश कैसे प्राप्त करें? Android "ऊंचाई" एक छाया नहीं दिखा रहा है स्विफ्ट कमांड लाइन कार्यक्रम में सीएफआरुन लूप J_security_check का उपयोग करके जावा ईई / जेएसएफ़ में उपयोगकर्ता प्रमाणीकरण करना टेम्पलेट पैरामीटर के रूप में मैं फ्लोट वैल्यू का उपयोग क्यों नहीं कर सकता / सकती हूं? स्ट्रिंग को तिथि और दिनांक समय में परिवर्तित करना जावा और SQLite दक्षता के लिए कोड का विश्लेषण? मैं एक्सेल इंटरॉप ऑब्जेक्ट को ठीक से कैसे साफ़ कर सकता हूं?

अजगर mysqldb: लाइब्रेरी लोड नहीं है: libmysqlclient.18.dylib

मैंने मैक ओएस 10.6 पर अजगर 2.7 के लिए केवल mysqldb संकलित और स्थापित किया है। मैंने एक साधारण परीक्षण फाइल बनाई जो आयात करती है

import MySQLdb as mysql 

सबसे पहले, यह कम लाल रेखा रेखांकित है और जानकारी मुझे "अनसुलझी आयात" बताती है फिर मैंने निम्नलिखित सरल अजगर कोड को चलाने की कोशिश की

 import MySQLdb as mysql def main(): conn = mysql.connect( charset="utf8", use_unicode=True, host="localhost",user="root", passwd="",db="" ) if __name__ == '__main__'(): main() 

इसे निष्पादित करते समय मुझे निम्न त्रुटि संदेश मिलता है I

 Traceback (most recent call last): File "/path/to/project/Python/src/cvdv/TestMySQLdb.py", line 4, in <module> import MySQLdb as mysql File "build/bdist.macosx-10.6-intel/egg/MySQLdb/__init__.py", line 19, in <module> \namespace cvdv File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 7, in <module> File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 6, in __bootstrap__ ImportError: dlopen(/Users/toom/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib Referenced from: /Users/toom/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so Reason: image not found 

मेरी समस्या का हल क्या हो सकता है?

संपादित करें: वास्तव में मुझे पता चला है कि पुस्तकालय / usr / local / mysql / lib में है। इसलिए मुझे अपने पयदे ग्रहण संस्करण को यह कहने की आवश्यकता है कि इसे कहां खोजें। मैं यह कहां से कहूं?

वेब के समाधान से एकत्रित समाधान "अजगर mysqldb: लाइब्रेरी लोड नहीं है: libmysqlclient.18.dylib"

मैंने पुस्तकालय में एक प्रतीकात्मक लिंक बनाकर समस्या का हल किया। अर्थात

वास्तविक पुस्तकालय में रहता है

 /usr/local/mysql/lib 

और फिर मैंने इसमें एक प्रतीकात्मक लिंक बनाया

 /usr/lib 

कमांड का उपयोग करना:

 sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 

इसलिए मेरे पास निम्नलिखित मैपिंग है:

 ls -l libmysqlclient.18.dylib lrwxr-xr-x 1 root wheel 44 16 Jul 14:01 libmysqlclient.18.dylib -> /usr/local/mysql/lib/libmysqlclient.18.dylib 

वह यह था। उसके बाद सबकुछ ठीक काम किया।

संपादित करें:

सूचना, क्योंकि MacOS El Capitan सिस्टम इंटीग्रिटी प्रोटेक्शन (एसआईपी, जिसे "रूटलेस" भी कहा जाता है) के कारण आपको /usr/lib/ में लिंक बनाने से रोकना होगा। आप इन निर्देशों का पालन ​​करके एसआईपी को अक्षम कर सकते हैं, लेकिन आप इसके बजाय /usr/local/lib/ में एक लिंक बना सकते हैं:

 sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib 

मेरा पसंदीदा तरीका वास्तव में पर्यावरण चर के साथ खेलने के बजाय लाइब्रेरी को ठीक करना है, जो कि आवेदन कैसे चल रहा है इस आधार पर हो सकता है या वास्तव में नहीं हो। यह वास्तव में एक सरल प्रक्रिया है

सबसे पहले, यह देखने के लिए त्रुटि आउटपुट को देखें कि अपमानजनक अजगर मॉड्यूल कहां स्थित है:

आयात इर्रर: ड्लोपें (/ लाइब्रेरी / पायथन 2/2 / साइट- पैकेज / _ एमएसक्यूएल.एसओ, 2): लाइब्रेरी लोड नहीं की गई: libmysqlclient.18.dylib से संदर्भित: / लाइब्रेरी / पायथन 2/2 / साइट- पैकेज / _ मीस्कुल.इस कारण: चित्र नहीं मिला

ठीक है, इसलिए अपमानजनक फ़ाइल है / लाइब्रेरी / पायथन 2/7 / साइट- पैकेज / _ मीस्कुल।

अगला, पता करें कि _mysql.so क्या सोचता है कि उसे libmysqlclient.18.dylib मिलना चाहिए:

 % otool -L /Library/Python/2.7/site-packages/_mysql.so /Library/Python/2.7/site-packages/_mysql.so: libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) 

इसलिए, यह libmysqlclient.18.dylib की कोई पथ जानकारी नहीं है, चलिए इसे ठीक कर दें:

 % sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Library/Python/2.7/site-packages/_mysql.so 

अब _mysql.so पुस्तकालय के लिए पूर्ण पथ जानता है और सब कुछ काम करता है, पर्यावरण चर की परवाह किए बिना।

 % otool -L /Library/Python/2.7/site-packages/_mysql.so /Library/Python/2.7/site-packages/_mysql.so: /usr/local/mysql/lib/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) 

मुझे पता चला कि एक प्रतीकात्मक लिंक बनाने की बजाय इस समस्या का एक अन्य समाधान था।

आप अपनी निर्देशिका का पथ सेट करते हैं, जहां libmysqlclient.18.dylib रहता है, DYLD_LIBRARY_PATH परिवेश चर। मैंने क्या किया है मेरी .bash_profile में निम्नलिखित पंक्ति डाल दिया है:

 export DYLD_LIBRARY_PATH=/usr/local/mysql-5.5.15-osx10.6-x86/lib/:$DYLD_LIBRARY_PATH 

बस।

मेरे मामले में, मुझे मैक ओएस एक्स 10.9 मेवेरिक्स के साथ त्रुटि मिल रही थी। मैंने ओएससीएल / आईएसएमएल वेबसाइट से डीएमजी से सीधे MySQL समुदाय सर्वर स्थापित किया है

मुझे सभी को ज़रूरी चाहिए कि लिब फ़ाइलों को / usr / local / lib निर्देशिका में सिमलिंक किया गया था।

 mkdir -p /usr/local/lib ln -s /usr/local/mysql/lib/libmysql* /usr/local/lib 

बोनस: यदि आप Mac OS X भी चला रहे हैं, तो libmysqlclient.18.dylib फ़ाइल, http://apps.tempel.org/FindAnyFile जैसी फ़ाइलों को खोजने के लिए एक शानदार उपकरण है। इस तरह मैं मूल रूप से डीआईएलआईबी फ़ाइल का स्थान पाया।

मैं इसे आपके .profile या .bashrc (जो भी आप उपयोग करते हैं) में डालने का यह सबसे आसान तरीका है, सिम् लिंक आपके स्रोत फ़ाइलों में पथ रखने की तुलना में गन्दा हैं

साथ ही योशसुरफ्स के जवाब की तुलना में, अधिकांश समय जब mysql स्थापित हो जाता है तो mysql निर्देशिका का नाम बदलकर सिर्फ mysql होना चाहिए, पूर्ण फ़ाइल नाम नहीं, उपयोग में आसानी के लिए।

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

Pydev ग्रहण प्लगइन में, आप डीआईएलडी के लिए पर्यावरण चर सेट कर सकते हैं। पथ में दिखाया जा सकता है

बर्फ तेंदुए पर mysqldb स्थापित करें

होमब्रे का उपयोग करने वाले लोगों के लिए आप इसे ठीक कर सकते हैं:

 $ brew link mysql 

जब आप ईआई कैपिटन में हैं, तो त्रुटि मिल जाएगी: ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted है "सिस्टम इंटीग्रिटी सुरक्षा" को बंद करने ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted आवश्यकता है

पहले, रिबूट मोड में प्रवेश करने के लिए सीएमडी + आर पर रिबूट करें और csrutil disable , फिर टर्मिनल लॉन्च करें और कमांड टाइप करें: csrutil disable , अब आप रिबूट कर सकते हैं और पुनः प्रयास कर सकते हैं।

नई एल कैप्टन इंस्टॉलेशन पर जहां एसआईपी (रूट रहित यूएसआर / लिब / एक्सेस करने से रोकता है) डिफ़ॉल्ट रूप से चालू होता है और जब तक आप रिकवरी मोड में नहीं होते तब तक आप सिमलिंक नहीं बना सकते। @ यनींक्सू ने कहा है कि आप एसआईपी को निष्क्रिय कर सकते हैं और / syslog / स्थानीय / स्थानीय / स्थानीय में अपना सिमलिंक कर सकते हैं और यह काम करेगा।

आप एसआईपी बंद करने के बजाय मैक ओएसएक्स एल कैपिटन पर निम्न कमांड का उपयोग कर सकते हैं:

 sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib 

वहाँ एक विकल्प था जहां आप रूट के रूप में लॉगिन कर सकते हैं और यह एसआईपी निष्क्रिय कर सकता है लेकिन अंतिम रिलीज में जो अब अप्रचलित है, आप इसके बारे में यहां अधिक पढ़ सकते हैं: https://forums.developer.apple.com/thread/4686

सवाल:

डेवलपर बीटा 1 में उपलब्ध एक एनवा्राम बूट-एल्ग्स कमांड है जो एसआईपी को निष्क्रिय कर सकता है, जब रूट विशेषाधिकार के साथ चलाया जाता है:

 nvram boot-args="rootless=0" 

क्या एसआईपी अक्षम करने का यह विकल्प एल कैप्टन रिलीज संस्करण में उपलब्ध होगा? या डेवलपर बनाने के लिए कड़ाई से है?

उत्तर:

यह nvram बूट-आर्ग्स कमांड दूर हो जाएगा। यह एल कैप्टन रिलीज संस्करण में उपलब्ध नहीं होगा और डेवलपर Betas के अंत से पहले गायब हो सकता है। भावी डेवलपर Betas के रिलीज़ नोट्स पर नज़र रखें।

मैंने इसमें कुछ आभासी वातावरणों के साथ भाग लिया है

 pip uninstall MySQL-python pip install -U MySQL-python 

दोनों बार काम किया

मुझे यह समस्या थी और मुझे कुछ समय तक पता चला कि यह कैसे तय किया जाए

मेरा मामला थोड़ा अलग है मेरा MySQL सर्वर संस्करण 5.1.x का है। और किसी तरह मैंने अपने MySQL-Python को 1.2.3 से 1.2.5 में अपग्रेड कर दिया। और मैंने इस मुद्दे को तब रखा जब से मैंने निम्नलिखित सॉफ्ट लिंक को जोड़ा।

 libmysqlclient.18.dylib -> /usr/local/mysql/lib/libmysqlclient.18.dylib 

यह पता चला है कि MySQL 5.1.x के लिए कोई libmysqlclient.18.dylib नहीं है, लेकिन केवल libmysqlclient.16.dylib। आप इस समस्या को ठीक कर अपने MySQL-Python को 1.2.3 में डाउनग्रेड कर सकते हैं या अपने MySQL सर्वर को 5.6.x में नवीनीकृत कर सकते हैं (मैंने 5.5.x की कोशिश नहीं की है।)

मैंने पुस्तकालय को 1.2.3 में डाउनग्रेड किया है, क्योंकि अपग्रेड करने के लिए MySQL मेरे लिए एक विकल्प नहीं है।

मेरे मामले में, एल कैपिटन (OSX 10.11) में, मुझे ~/.bash_profile में निम्नलिखित करना होगा

 export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:${DYLD_LIBRARY_PATH}" export PATH="/usr/local/mysql/lib:${PATH}" 

http://dev.mysql.com/downloads/connector/c/ पर जाएं और MySQL कनेक्टर / सी डाउनलोड करें। पैकेज प्राप्त करने के बाद, एक नई निर्देशिका 'mysql' बनाएं, Mysql कनेक्टर फ़ाइल को डायरेक्टरी के अंतर्गत mysql, फिर mysql के तहत, एक और रिक्त निर्देशिका 'build' बनाएं। हम MySQL Connector / C को बनाने के लिए 'build' का उपयोग करेंगे सीडी बिल्ड और एंड सेंमीक ../your-MySQL-Connector-source-dir स्थापित करने के बाद मेक एंड से स्थापित करें, आपको / usr / local के तहत mysql नामक निर्देशिका मिलेगी। इसमें सभी हेडर और लिबिट्स शामिल हैं, जो आपको ज़रूरत हैं.इस दिशा-निर्देश पर जाएं, और इसी स्थान पर हेडर और लिब्स कॉपी करें।