用Python连接到PostGreSQL 7.3数据库

时间:2011-06-10 18:36:48

标签: python postgresql

我需要连接到旧的PostGreSQL数据库(版本7.3),我在XP机器上使用Python 3.2。 py-postgresql包似乎合适,但它似乎只使用3.0版本中实现的3.0协议。我想使用Python连接到这个数据库,但是当我尝试时,我收到了一个意外的EOF错误,我相信这是使用更新协议的包的结果。

我可以使用pgAdminIII程序连接到数据库就好了。有什么想法吗?

2 个答案:

答案 0 :(得分:6)

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

我认为您唯一的选择是使用Postgres ODBC驱动程序,并使用pyODBCmxODBC连接到它。 pyodbc的Python 3.x端口从他们的主项目页面链接。

答案 1 :(得分:3)

尝试PyGreSQL

  

PyGreSQL是一个Python模块   PostgreSQL数据库的接口。   它嵌入了PostgreSQL查询库   允许轻松使用功能强大   PostgreSQL来自Python的功能   脚本。

     

PyGreSQL 4.0当前版本需要   PostgreSQL 7.2和Python 2.3或   上方。

修改

我对PostgreSQL 7.3进行了一些测试(在Debian Squeeze上从source编译),我发现它运行良好。我只更改了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)