2009-04-20 8 views
22

विंडोज़ पर पाइथन से ओडीबीसी से कनेक्ट करने के लिए मुझे किस लाइब्रेरी का उपयोग करना चाहिए? क्या odbc की बात आती है जब pywin32 के लिए कोई अच्छा विकल्प है?विंडोज़ पर पाइथन से ओडीबीसी से कनेक्ट करने के सामान्य तरीके?

मैं कुछ अच्छी तरह से प्रलेखित, मजबूत, सक्रिय रूप से बनाए रखा, आदि की तलाश में हूं pyodbc अच्छा दिखता है - क्या कोई अन्य है?

उत्तर

26

आपने पहले से ही pyodbc का सुझाव दिया है, और मैं आपके साथ सहमत होने जा रहा हूं।

इसने मुझे अपने अनुभव में कम से कम मुद्दों को दिया है; मैंने pymssql और adodbapi का उपयोग किया है, और जब उन्होंने अपवाद/निर्मित मुद्दों को फेंक दिया, तो मैंने कोड को बदल दिया और इसे pyodbc से बदल दिया और यह या तो समस्या को ठीक कर दिया, या बेहतर त्रुटि संदेश दिए ताकि मैं तेज़ी से डीबग कर सकूं।

यह उल्लेखनीय है कि मैं मुख्य रूप से इसे MSSQL सर्वर डीबी से कनेक्ट करने के लिए उपयोग करता हूं।

17

मैं सभी पायथन डेटाबेस पहुंच के लिए SQLAlchemy का उपयोग करता हूं। मैं अत्यधिक SQLAlchemy की सलाह देते हैं।

एसए एसक्यूएल सर्वर डेटाबेस से कनेक्ट करते समय हुड के नीचे pyodbc का उपयोग करता है। यह अन्य डेटाबेस से कनेक्ट करने के लिए अन्य डीबीएपीआई पुस्तकालयों का उपयोग करता है, उदाहरण के लिए cx_Oracle।

एक साधारण उदाहरण के लिए, SQLAlchemy का उपयोग कर की तरह आप सामान्य रूप से एक DBAPI मॉड्यूल का प्रयोग करेंगे:

import sqlalchemy 

engine = sqlalchemy.create_engine('sqlite:///database.db') 
for r in engine.execute('SELECT * FROM T'): 
    print(r.OneColumn, r.OtherColumn) 

लेकिन SQLAlchemy के वास्तविक मूल्य अपनी ORM और SQL expression language में निहित है। एक नज़र डालें, उपयोग करने के लिए सीखने के प्रयास के लायक है।

+0

SQLAlchemy ने कोड के दो से अधिक लाइनों को बदले बिना odbc और adodbapi के बीच स्विच करना मेरे लिए बहुत आसान बना दिया। –

+0

+1 - इसके लिए धन्यवाद! –

1

मैं काम पर pyodbc का उपयोग करता हूं और यह मुझे कभी विफल नहीं करता है (हमारे पास विविधता डीबीएस है)। यह मजबूत और तेज़ है।

यह सक्रिय रूप से बनाए रखा गया है और जल्द ही एक पायथन 3 संस्करण आ जाएगा।

यदि आप भुगतान किए गए समर्थन के साथ "एंटरप्राइज़" सॉफ़्टवेयर चाहते हैं तो आप mxODBC का उपयोग कर सकते हैं।

+0

pyodbc विंडोज पायथन 3.1.2 :( –

+0

पर मेरे लिए काम नहीं कर रहा है पाइथन 3 के लिए कोई आधिकारिक निर्माण नहीं है :(मैं भी एक के लिए इंतजार कर रहा हूं। एक अनौपचारिक है कि आपको खुद को बनाना है – hugo24

1

पायथन 3 अब pyodbc द्वारा समर्थित है!

+3

यह एक प्रतिक्रिया कैसे है? ओपी सवाल को संबोधित नहीं करते हैं। – Anoyz

6

एक और विकल्प pypyodbc है जो शुद्ध पायथन में लिखा गया था। इसे pyodbc मॉड्यूल के पुन: लागू करने के रूप में देखा जा सकता है - केवल 1800 लाइन कोड के साथ, जो रखरखाव के लिए अच्छा है।

यहां एक Hello World sample of accessing mssql in Python है।

0

आप turbodbc एक स्पिन दे सकते हैं। संस्करण 1.1.1 के बाद से, यह आधिकारिक तौर पर विंडोज का समर्थन करता है। एक अच्छा मौका है कि यह आपके द्वारा किए गए कार्यों के लिए pyodbc से तेज़ है।

संबंधित मुद्दे