在windows下为python2.7编译pyPgSQL (compile pyPgSQL for python2.7 in windows)


本文编译后的windows下安装包下载地址:pyPgSQL-2.5.1.win32-py2.7.zip

     pyPgSQL是PostgreSql数据库的python语言接口,其实现符合Python DB-API 2.0规范。大名鼎鼎的python网络框架twisted的企业级特性,如连接池、异步连接等就使用pyPgSQL支持PostgreSql数据库。
最近在使用Windows系统下的Python2.7,却发现pyPgSQL官方编译好的for win32的安装包只支持到Python2.5,网上也没找到编译好的安装包下载,只好自己动手编译。在编译前参考了“http://blog.chinaunix.net/uid-20684384-id-1895616.html”中的编译python2.5支持包的方法。编译python2.7的方法基本相同,只是我用的是vc编译器(机器上已经装好了vc)。过程如下:

1.在pyPgSQL官网下载了pyPgSQL-2.5.1的源代码,有在win32下的安装说明,支持VC++和MingW。
下载网址为:http://sourceforge.net/projects/pypgsql/files/pypgsql/2.5.1/ 下的pyPgSQL-2.5.1.tar.gz文件,下载后解压之、源码下的“README.win32”文件为编译的说明

2.下载并安装python2.7,这个随便搜索一个下载安装即可。
3.下载安装PostGreSQL,并设置各种安装环境变量,下载地址为:
  此处需要特别注意,必须下载“Version 8.4.13”或以下的版本,最新的“Version 9.2.0”下的include中的头文件为python3的格式,在python2.7下无法直接编译通过,有兴趣的读者可以自己修改以下源码试试。
     安装成功后的测试方面,在新打开的cmd程序中直接执行pg_config,如果返回多行配置信息,即表示安装成功。
4.编译pyPgSQL-2.5.1 for python2.7
     cmd下切换到pyPgSQL-2.5.1源码的根目录下就可以编译或安装,打包安装程序了。
编译:
python setup.py build
直接安装:
python setup.py install

打包生成安装包:
python setup.py bdist_wininst
打包生成安装包将在dist目录下生成安装文件,pyPgSQL-2.5.1.win32-py2.7.exe


以后直接执行安装包安装即可
安装成功的测试方法为:
在python终端只执行

from pyPgSQL import PgSQL
cnx = PgSQL.connect(host='127.0.0.1', user='postgres', password='123456')
cur = cnx.cursor()
cur.execute("SELECT * FROM pg_database")
res = cur.fetchall()
print res
cur.close()
cnx.commit()



执行完成后不报错即表示pyPgSQL安装成功。

5.如果测试报错:libpq.DatabaseError: Invalid format for PgVersion construction,表示版本不正确,可以通过修改源码来解决。找到源码 pyPgSQL's pgversion.c中注销265-266行,如下所示:


重新编译并生成,既可。经测试,使用此安装包安装的pyPgSQL库可以连接postgreSQL9.2数据库。如果有问题可以联系作者guojunquan(!!!)@(###)gmail.com.

windows下安装包下载地址:pyPgSQL-2.5.1.win32-py2.7.zip
 
  
参考:
编译pyPgSQL-2.5.1 for Python2.5, http://pongo.blog.hexun.com/8926319_d.html


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值