2012-08-03 19 views
6

क्या लोहे के अजगर से एक MySQL डेटाबेस से कनेक्ट करने के लिए sqlobject का उपयोग करना संभव है? यदि हां, तो कैसे? मुझे क्या इंस्टॉल करना चाहिए?लौह पायथन पर sqlobject + mysql को कैसे स्थापित करें और उपयोग करें?

मेरे पास cpython के लिए sqlobject स्थापित है और यह ठीक काम करता है, लेकिन अगर मैं उसी पैकेज का उपयोग लोहेपीथॉन में करता हूं तो मुझे "आयात त्रुटि: _ मॉड्यूल नामक कोई मॉड्यूल नहीं मिलता है"। मैं इसका मतलब यह समझता हूं कि ironpthon mysql API तक पहुंचने के लिए आवश्यक सी-आधारित .dlls लोड नहीं कर सकता है। कामकाज क्या है, या कोई है?

+0

अगर आप की जाँच इस [कड़ी] (http://www.ironpython.info/index हो सकता है करने के लिए फिर से लिखने के कारण काफी मात्रा की आवश्यकता होगी। php/डेटाबेसबेस_with_Odbc) यह दिखाता है कि कनेक्ट करने के लिए ओडीबीसी का उपयोग कैसे करें, लेकिन इंस्टॉल करना मुझे नहीं पता कि क्या आप पहले से ही हैं स्थापित है, लेकिन यह एकमात्र फिक्स है जिसे मैं पा सकता हूं। (केवल MySQL का उपयोग करके) –

उत्तर

-1

आपको पायथन में '_mysql' मॉड्यूल स्थापित करना होगा। मुझे नहीं पता कि पाइथन का कौन सा संस्करण आप उपयोग कर रहे हैं।

ये कुछ लिंक स्थापित करने के लिए अजगर 2.x या अजगर 3.x के लिए '_mysql' मॉड्यूल

http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

http://www.codegood.com/archives/129

+0

प्रश्न विशेष रूप से लौह पायथन के बारे में है, लेकिन आपका उत्तर cpython के लिए प्रतीत होता है। –

-1

आप यह देखते हैं, तो संभवत: ऐसा कर रहे हैं MySQLdb स्थापित करते समय आपने कुछ गलत किया; रीडमी पढ़ें (या पढ़ें) पढ़ें। _mysql निम्न-स्तरीय सी मॉड्यूल है जो MySQL क्लाइंट लाइब्रेरी के साथ इंटरफेस करता है।

अतीत में MySQLdb के विभिन्न संस्करणों ने "अजीब" प्लेटफॉर्म पर मुद्दों का निर्माण किया है; इस मामले में "अजीब" का मतलब है "लिनक्स नहीं", हालांकि आम तौर पर यूनिक्स/पॉज़िक्स प्लेटफार्मों में बीएसडी और मैक ओएस एक्स समेत कोई समस्या नहीं है। विंडोज़ में कुछ समस्याग्रस्त रहा है, क्योंकि विंडोज इंस्टॉलेशन में कोई mysql_config उपलब्ध नहीं है MySQL का। 1.2.1 इन समस्याओं में से अधिकांश को हल नहीं करते हैं, लेकिन आपको अभी भी एक कॉन्फ़िगरेशन फ़ाइल संपादित करनी होगी ताकि सेटअप जानता है कि MySQL कहां और किस पुस्तकालयों को शामिल करना है।

ImportError: libmysqlclient_r.so.14: cannot open shared object file: No such file or directory 

.so के बाद संख्या भिन्न हो सकते हैं, लेकिन यह मतलब है कि आप MySQLdb का एक संस्करण MySQL के एक संस्करण के खिलाफ संकलित है, और अब यह एक अलग संस्करण के खिलाफ चलाने के लिए कोशिश कर रहे हैं। साझा पुस्तकालय संस्करण प्रमुख रिलीज के बीच बदल जाता है।

समाधान: MySQLdb को पुनर्निर्मित करें, या MySQL का मिलान संस्करण प्राप्त करें।

एक और चीज जो इसका कारण बन सकती है: MySQL लाइब्रेरी आपके सिस्टम पथ पर नहीं हो सकती है।

समाधान:

set the LD_LIBRARY_PATH environment variable so that it includes the path to the MySQL libraries. 

set static=True in site.cfg for static linking 

reconfigure your system so that the MySQL libraries are on the default loader path. In Linux, you edit /etc/ld.so.conf and run ldconfig. For Solaris, see Linker and Libraries Guide. 

ImportError: ld.so.1: python: fatal: libmtmalloc.so.1: DF_1_NOOPEN tagged object may not be dlopen()'ed 

यह सोलारिस से एक अजीब से एक है। इसका क्या मतलब है? मुझे पता नहीं है। हालांकि, इस तरह की चीजें तब हो सकती हैं जब पाइथन और माईएसक्यूएल के बीच किसी प्रकार का कंपाइलर या पर्यावरण विसंगति हो। उदाहरण के लिए, कुछ वाणिज्यिक प्रणालियों पर, आपके पास अपने स्वयं के कंपाइलर और जीसीसी के साथ संकलित अन्य चीजों के साथ संकलित कुछ कोड हो सकता है। वे हमेशा एक साथ जाल नहीं करते हैं। इसका सामना करने का एक तरीका विभिन्न विक्रेताओं से बाइनरी पैकेज प्राप्त करना है।

समाधान: स्रोत से पायथन या MySQL (या शायद दोनों) को पुनर्निर्माण करें।

ImportError: dlopen(./_mysql.so, 2): Symbol not found: _sprintf$LDBLStub Referenced from: ./_mysql.so Expected in: dynamic lookup 

यह मैक ओएस एक्स ऐसा लगता है एक संकलक बेमेल किया गया है, लेकिन जीसीसी के दो विभिन्न संस्करणों के बीच इस बार से एक है। ऐसा लगता है कि जीसीसी की लगभग हर बड़ी रिलीज एबीआई को कुछ हद तक बदलती है, इसलिए उदाहरण के लिए जीसीसी-3.3 और जीसीसी-4.0 के साथ संकलित कोड को जोड़ना समस्याग्रस्त हो सकता है।

+0

-1: यह प्रश्न विशेष रूप से लोहे के बारे में है - मैं इसे शीर्षक और पहली वाक्य में उल्लेख करता हूं। आपका उत्तर लोहेप्थॉन –

-1
+0

-1 के साथ इस मॉड्यूल का उपयोग करने की कोशिश करने की अनूठी स्थिति को हल करने के लिए कुछ भी नहीं करता है: यह प्रश्न विशेष रूप से लौह पायथन के बारे में है। आपके द्वारा प्रदान किए गए लिंक केवल cpython से संबंधित हैं। –

1

स्रोत कोड sqlobject को देखते हुए शुद्ध अजगर, कोड MySQLdb पर निर्भर है जो CPython तक ही सीमित है है। यही कारण है कि mysql.connector का पालन नहीं करता:

लेकिन यदि आप mysql.connector (http://dev.mysql.com/doc/connector-python/en/index.html) पुस्तकालय जो शुद्ध अजगर में लिखा है उपयोग करने के लिए कोड को संशोधित आप MySQL के लिए

नोट एक कनेक्शन estanblish में सक्षम होना चाहिए MySQLdb रूप में एक ही एपीआई और source code

मेरा मानना ​​है कि यह आपका सबसे अच्छा समाधान का