2011-06-10 33 views
3

我需要連接到一箇舊的PostGreSQL數據庫(版本7.3),並且我在XP機器上使用Python 3.2。 py-postgresql包似乎是合適的,但它似乎只使用3.0協議,該協議在7.4版本中實現。我想用Python連接到這個數據庫,但是當我嘗試過時,我收到了一個意外的EOF錯誤,我相信這是使用新協議的包的結果。在Python中連接到PostGreSQL 7.3數據庫

我可以使用pgAdminIII程序連接到數據庫就好了。有任何想法嗎?

回答

6

不幸的是,py-postgresql和psycopg2都只支持v3協議。

我認爲你唯一的選擇是使用Postgres ODBC驅動程序,並使用pyODBCmxODBC連接到它。 pyodbc有一個Python 3.x端口,它們的主項目頁面鏈接在一起。

+0

我結束了使用從pywin32 ODBC 。它似乎經常崩潰python,但我會在以後找出一個。 – Vatsu1 2011-06-12 17:58:08

3

嘗試用PyGreSQL

PyGreSQL是一個Python模塊, 接口PostgreSQL數據庫。 它嵌入PostgreSQL查詢庫 ,以便於使用Python 腳本中功能強大的 PostgreSQL功能。

當前版本的PyGreSQL 4.0需要 上面的PostgreSQL 7.2和Python 2.3或 。

編輯:

我取得對抗的PostgreSQL 7.3一些測試(從source在Debian擠壓編譯),我看到它工作得很好。我只在postgresql.conf中改變一個屬性,以使本地連接的Python下工作良好:

unix_socket_directory = '/var/run/postgresql' 

,使用python-pygresql包後(4.0.2版本):

import pg 
con1 = pg.connect('postgres', None, 5440, None, None, 'postgres', None) 
con1.query('SELECT version()') 
version 
-------------------------------------------------------------------------------- 
PostgreSQL 7.3.21 on i686-pc-linux-gnu, compiled by GCC gcc (Debian 4.4.5-8) 4.4 
(1 row) 
con1.query('SELECT width, height FROM box') 
width|height 
-----+------ 
10 |15  
18 |25  
(2 rows) 
相關問題