2011-12-07 12 views
6

चूंकि बर्कलेडीबी एसक्यूएलएइट एपीआई का उपयोग कर सकता है, तो बर्कलेडबीबी से कनेक्ट करने के लिए पाइथन एसक्लाइट मॉड्यूल का उपयोग कर सकते हैं।पायथन बर्कले डीबी/स्क्लाइट

यह पोस्ट कुछ और उपयोग करने का सुझाव देता है, लेकिन प्री-एपी सिंक लिखा जा सकता था। Best Python module for Berkeley DB?

एक साधारण कनेक्शन स्ट्रिंग प्राप्त कर सकते हैं। यदि समस्या ज्ञात है, तो कृपया पोस्ट करें। मेरे द्वारा इस विषय की खोज की जा रही है।

लिनक्स और विंडोज़ पर पायथन 2.7 का उपयोग करना।

+0

मैं एक सर्वेक्षण ले रहा हूँ में जाना, तुम्हें क्या लगता है आप भी इस चाहते हैं? एक ही एपीआई को रखने से डाटाबेस फाइलें स्वयं पोर्टेबल नहीं बन जाएंगी, आपको हर बार एक नए होस्ट में माइग्रेट करने के लिए गैर-मानक संकलन प्रक्रिया दोहराना होगा। स्क्लाइट 3 की तुलना में अधिक फीचर डेटाबेस का उपयोग करना बहुत आसान है, सभी प्रमुख डेटाबेस में डीबीएपीआई संगत बाइंडिंग हैं। – SingleNegationElimination

+0

आपके सर्वेक्षण का जवाब: हर किसी के पास अपना स्वयं का उपयोग केस और देव पथ है। – Merlin

+0

मैं आपके उपयोग के मामले के बारे में पूछ रहा हूं, क्योंकि आप शायद उस विशेष मामले के समाधान की तलाश में हैं। – SingleNegationElimination

उत्तर

4

के रूप में यहाँ https://forums.oracle.com/forums/thread.jspa?threadID=2302793 सुझाव दिया मैं के बाद से मुझे शक है अपनी वितरण BDB SQLite एपीआई है एक स्थिर संस्करण बनाने के लिए कदम python27 साथ linux x86_64 पर की कोशिश की है, यहाँ।

डाउनलोड db-5.2.36.tar.gz

tar xzvf db-5.2.36.tar.gz 
cd db-5.2.36/build_unix/ 
CFLAGS="-fPIC" ../dist/configure --enable-static --disable-shared --enable-sql-compat 
# you need -fPIC to build the python ext of pysqlite 
make 
make prefix=/tmp/bdb install 

http://code.google.com/p/pysqlite/ से pysqlite2 की एक प्रति प्राप्त, मैं एक एचजी चेकआउट का उपयोग किया है। setup.cfg में build_ext अनुभाग में जोड़ (वहाँ अभी तक दो टिप्पणी की लाइनों आप उन्हें पुन: उपयोग कर सकते हैं)

include_dirs=/tmp/bdb/include 
library_dirs=/tmp/bdb/lib 

तो pysqlite में सीडी:

python setup.py build 
python setup.py install 

या स्थापना के बिना:

cd build/lib.linux-x86_64-2.7 
python 
from pysqlite2 import dbapi2 
conn = dbapi2.connect('test.db') 
c = conn.cursor() 
c.execute('bla bla bla sql') 
+0

लिनक्स समाधान के लिए धन्यवाद ... मुझे विंडोज़ समाधान की भी आवश्यकता है .... – Merlin

3

OracleBSDDB documentation के अनुसार, आप तो एक sqlite3 प्रतिस्थापन पुस्तकालय उत्पन्न करने के लिए, (सिद्धांत में) BsdDB मजबूर कर सकते हैं आप मानक sqlite3 पुस्तकालय के प्रतिस्थापन में इस लाइब्रेरी का उपयोग करने में सक्षम हो जाएगा, और फिर sqlite3 अजगर मॉड्यूल का उपयोग करें।

फिर भी, हो carrefull, जो समर्थन SQLite एपीआई SleepyCat License कि आप ओरेकल के लिए फीस का भुगतान या एक ओपन सोर्स प्रोजेक्ट होने के लिए बाध्य करेगा अंतर्गत लाइसेंस प्राप्त है BsdDB के संस्करण का उपयोग कर (उन समाधानों में से कोई वास्तव में बुरा कर रहे हैं, लेकिन आप चुनना)।

+0

फीस पर, अकेले बीएसडीडीबी का उपयोग करने के लिए, क्या मुझे शुल्क का भुगतान करना होगा? बीएसडीडीबी खुला स्रोत नहीं है, Akin से MySQL। – Merlin

+0

@Merlin: मैंने बीएसडीडीबी लाइसेंस के लिंक के साथ अपना जवाब अपडेट किया। –

4

Win32 पर बिल्डिंग और समामेलन पुस्तकालय चुनौतीपूर्ण है :)

मेरा मान्यताओं:

  • python27 (मैं ActiveState अजगर है, लेकिन python.org ठीक होना चाहिए) C: \ python27
  • विजुअल स्टूडियो 2010 पेशेवर (मुझे लगता है कि एक्सप्रेस भी काम करना चाहिए)

डाउनलोड BDB और pysqlite (इस बार मुझे 2.6 मिल गया है।3) और c:\bdb में रखें, खोल BDB आप

C:\bdb\db-5.2.36 

C:\bdb\db-5.2.36\build_windows में जाने, Berkeley_DB_vs2010.sln लेने Static Release विन्यास के रूप में चयन किया है और निर्माण

आप

में libdb52s.lib और libdb_sql52s.lib की आवश्यकता होगी तो
C:\bdb\db-5.2.36\build_windows\Win32\Static Release 

अब c:\bdb में pysqlite को अनपैक करें, C:\bdb\pysqlite-2.6.3 पर जाएं घ पालन संपादित setup.cfg:

[build_ext] 
include_dirs=C:\bdb\db-5.2.36\lang\sql\generated 
library_dirs=C:\bdb\db-5.2.36\build_windows\Win32\Static Release 
define=SQLITE_OMIT_LOAD_EXTENSION 

पुस्तकालयों निकालने का ध्यान रखें = मैं स्थिर लिंक हम एक से अधिक पुस्तकालय निर्दिष्ट करने की आवश्यकता की वजह से उन्हें जोड़ने के लिए setup.py करने था, कोई व्यक्ति ऐसा जानता है setup.cfg में सूची निर्दिष्ट करने, कृपया मुझे बताओ :)

अब खुला setup.py लाइन 191 पर जा सकते हैं और बदल देते हैं:

साथ
libraries=libraries 

:

0,123,516 (दृश्य स्टूडियो उपकरण मेनू में)
libraries=['libdb_sql52s', 'libdb52s', 'ws2_32', 'advapi32'], 

खुला VS2010 कमांड प्रॉम्प्ट

c:\bdb\pysqlite

set DISTUTILS_USE_SDK=1 
set MSSdk=1 
python setup.py build 
# ignore errors about manifests, just make sure _sqlite.pyd is built 

# make same tests of the linux instructions 

python setup.py bdist_wininst 
will make the .exe installer in dist subdir 
+1

+1 "Win32 पर पुस्तकालयों का निर्माण और समामेलन चुनौतीपूर्ण है :)" – Merlin

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