博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用MinGW编译Psycopg2
阅读量:6717 次
发布时间:2019-06-25

本文共 1129 字,大约阅读时间需要 3 分钟。

Building Psycopg on Windows using MinGW

Posted by on June 5, 2011

使用MinGW编译Psycopg2

佣工7001 2012.2

我的目的是在windows系统下使用MinGW和PostgreSQL客户端编译安装Psycopg。

我使用了Giovanni Bajo封装的 分发版本。这个分发版为我们处理了很多细节。例如:把MinGW注册为Python的默认编译器,外加一些我根本不想知道的魔法, 因此它使得我的整个处理过程足够容易了。

首先,需要确认安装脚本setup.py 可以找到配置文件“pg_config”。目前的Psycopg版本有一个Bug,造成在Path环境变量中也不能找到这个配置文件。 这个bug 将在Psycopg 2.4.2版本中被修正。 在这儿之前的几个版本你将不得不在setup.cfg文件中指定pg_config的路径,或者使用“ --pg-config”这个命令行选项来给出:

python setup.py build_ext --pg-config=C:\path\to\pg_config.exe build

这个程序库需要libpq.dll的支持,因此在运行时这个动态连接库一定要可找到,比如在系统的path变量保护库的路径或者干脆复制到psycopg2的目录中来。“libpq.dll”本身还需要依赖于其他几个dll文件,这些dll都可以在PostgreSQL的bin目录中找到:libeay32.dll, ssleay32.dlllibintl-8.dll这些文件都需要可以访问到。并且不幸的是,如果其中某个文件不能找到,你只能收到这样的错误:“ImportError: dll load failed”。当然,这样的错误使用 可以很容易的跟踪出来。

另一个你可能遇到的问题是基于Python 2.6或更新的Python版本来编译时:一些MinGW版本使用了过期的msvcr90.lib版本,这同样会造成这个让人摸不着头脑的错误信息“ImportError”。在这里,dependency walker这个工具同样管用,它会指出在msvcr90.lib中找不到函数“localtime”。这个bug在已被提出来,请见。我的解决方案是下载新的 版本,使用新版本里面的libmsvcr90.a

好了,虽然依旧依赖于很多动态连接库,到目前为止总算可以编译了。如果解决方案中可以把所有的依赖项都复制到软件包目录中,我将热泪盈眶了。。当然你还可以使用 。他已经把libpq和openssl作为静态库包含在了psycopg分发包中,这可能是最易用的版本了。

转载地址:http://rrkmo.baihongyu.com/

你可能感兴趣的文章
ROS机器人程序设计(原书第2版)2.4.3 创建ROS功能包和综合功能包
查看>>
Akka笔记之消息传递
查看>>
《企业大数据系统构建实战:技术、架构、实施与应用》一1.3 本章小结
查看>>
为什么不能用memcached存储Session?
查看>>
《C++编程风格(修订版)》——2.2 明确定义的状态
查看>>
页面加载显示进度条
查看>>
Logstash 日志搜集处理框架 安装配置
查看>>
Manifest.xml 入门基础(一) 概述与<manifest>标签
查看>>
2016全球最强数据库大盘点
查看>>
可视化与领域驱动设计
查看>>
数据结构实践——字符串加密
查看>>
其他转移指令(0904)
查看>>
《卸甲笔记》-多表查询之一
查看>>
安装部署nvm、npm、nodejs之前先了解清楚三者之间关系
查看>>
linux 磁盘管理下(LVM逻辑卷创建和管理,磁盘配额设置方法以及小技巧)
查看>>
NFS Volume Provider(Part III) - 每天5分钟玩转 OpenStack(64)
查看>>
MySQL 安装详解
查看>>
使用Express + Socket.io + MongoDB实现简单的聊天室
查看>>
【cocos2d-x】横向滚屏射击游戏②----虚拟控制手柄
查看>>
Docker 之 容器网络管理
查看>>