2012-11-05 115 views
4

我有一個應用程序需要支持Python 2.4和2.6。在2.6中,sqlite3替換了sqlite。除了paramstyle之外,還有什麼需要擔心的地方?這是一個體面的處理方式嗎?支持sqlite和sqlite3

try: 
    import sqlite3 as sqlite 
except ImportError: 
    import sqlite 

... 

if sqlite.paramstyle == 'qmark': 
    query = 'SELECT foo FROM bar where baz = ?' 
else: 
    query = 'SELECT foo FROM bar where baz = %s' 
cursor.execute(query, params) 

回答

6

在python 2.4上,使用pysqlite package。這是完全相同的程序包,當它被重命名爲sqlite3時,該程序包已添加到2.5版Python標準庫中。

,因爲它是相同的包,還有API中沒有差異,而你只需要使用一個tryexcept ImportError測試:

try: 
    import sqlite3 
except ImportError: 
    from pysqlite2 import dbapi2 as sqlite3 
+0

這無疑使得它有點簡單維護。謝謝! –