在Python中连接PostGreSQL 7.3数据库
我需要连接一个旧的PostGreSQL数据库(版本7.3),而我在一台运行XP系统的机器上使用Python 3.2。看起来py-postgresql这个包是合适的,但它似乎只支持3.0协议,而这个协议是在7.4版本中实现的。我想用Python连接这个数据库,但每次尝试时都会出现一个意外的EOF错误,我认为这是因为这个包使用了更新的协议。
我可以用pgAdminIII程序顺利连接到这个数据库。有没有什么建议?
2 个回答
3
可以试试 PyGreSQL:
PyGreSQL 是一个 Python 模块,用来和 PostgreSQL 数据库进行交互。它把 PostgreSQL 的查询库嵌入到 Python 中,这样你就可以很方便地在 Python 脚本里使用 PostgreSQL 的强大功能。
目前的版本 PyGreSQL 4.0 需要 PostgreSQL 7.2 以及 Python 2.3 或更高版本。
编辑:
我在 PostgreSQL 7.3(在 Debian Squeeze 上从 源代码 编译)上做了一些测试,发现运行得很好。我只在 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)