您的位置:首页 > 编程语言 > Python开发

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

2012-09-27 17:19 561 查看
本文编译后的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,并设置各种安装环境变量,下载地址为:
http://www.enterprisedb.com/products-services-training/pgdownload#windows
此处需要特别注意,必须下载“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
编译pyPgSQL-2.5.1 for Python2.5, http://blog.chinaunix.net/uid-20684384-id-1895616.html
“Invalid format for PgVersion construction”, http://sourceforge.net/mailarchive/forum.php?set=custom&viewmonth=&viewday=&forum_name=pypgsql-devel&style=nested&max_rows=50&submit=Change+View
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: