使用MinGW编译Psycopg2
Building Psycopg on Windows using MinGW
Posted by Daniele Varrazzo on June 5, 2011
使用MinGW编译Psycopg2
佣工7001 2012.2
我的目的是在windows系统下使用MinGW和PostgreSQL客户端编译安装Psycopg。
我使用了Giovanni Bajo封装的MinGW GCC binaries 分发版本。这个分发版为我们处理了很多细节。例如:把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.dll和libintl-8.dll。这些文件都需要可以访问到。并且不幸的是,如果其中某个文件不能找到,你只能收到这样的错误:“ImportError: dll load failed”。当然,这样的错误使用 dependency walker可以很容易的跟踪出来。
另一个你可能遇到的问题是基于Python 2.6或更新的Python版本来编译时:一些MinGW版本使用了过期的msvcr90.lib版本,这同样会造成这个让人摸不着头脑的错误信息“ImportError”。在这里,dependency walker这个工具同样管用,它会指出在msvcr90.lib中找不到函数“localtime”。这个bug在已被提出来,请见issue 3308。我的解决方案是下载新的MinGW 版本,使用新版本里面的libmsvcr90.a。
好了,虽然依旧依赖于很多动态连接库,到目前为止总算可以编译了。如果解决方案中可以把所有的依赖项都复制到软件包目录中,我将热泪盈眶了。。当然你还可以使用Jason的分发包 。他已经把libpq和openssl作为静态库包含在了psycopg分发包中,这可能是最易用的版本了。
使用MinGW编译Psycopg2相关推荐
- 【POCO】POCO学习总结(四)——MinGW编译poco
在window下使用MinGW编译poco 使用MSYS 下载MSYS 官网介绍:http://www.mingw.org/wiki/Getting_Started 官网下载:https://jais ...
- mingw编译ffmpeg 错误:Unknown option --enable-memalign-hack
据说mingw编译ffmpeg的话需要添加 --enable-memalign-hack 开关 但如果源码是最新版比如:ffmpeg4.0.2 的话 好像已经禁用了该开关. "我可以确认新的 ...
- Qt5.5.0环境下的mingw编译dcmtk 3.6.1_20150924
网上关于mingw编译dcmtk的文章太少,不方便查阅,期间遇到各种问题.特意将整个编译过程记录下来.为了保证所有编译出来的文件方便我在Qt5.5.0中使用,将所有的dcmtk依赖的外部库下载下来并进 ...
- MinGW编译wxWidget
MinGW编译wxWidget MinGW编译wxWidget WXWIN:源代码根目录 解压源码 进入到%WXWIN%\build\msw 清理项目 mingw32-make -f makefile ...
- Mingw编译DLib
Mingw编译DLib 因为机器上安装了qt-opensource-windows-x86-mingw530-5.8.0,所以准备使用其自带的mingw530来编译DLib使用. 因为DLib使用CM ...
- [转]cscope在windows下使用mingw编译的方法
cscope在windows下使用mingw编译的方法 http://blog.csdn.net/mslk/archive/2007/05/06/1598513.aspx cscope在wi ...
- c++ 编译添加dll_使用MinGW编译OpenCV4源码与配置使用演示
点击上方蓝字关注我们 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 QT在Windows上安装好之后,常规会两种编译器选择分别是: -VS2015/2017/2019....-m ...
- qt学习之旅--MinGW编译FFmpeg(32bit)
0.前言 本来想说FFmpeg使用现成的动态库,结果发现FFmpeg已经没有32位的了,然而我的QT使用的还是MinGW32位的,没办法,只能自己编译生成32位动态库. 参考博客:ffmpeg 2.6 ...
- mingw版本下qt与HTML,QT5.10开发(2) 在Windows 10下使用MinGW编译 静态Qt 5.10 release版 详细过程...
Qt建议安装动态链接Dbug版和编译安装静态链接release版 前提: 先安装动态链接Dbug版,方法:QT5.10开发(1)安装QT5.10 地址:http://blog.csdn.net/qq_ ...
最新文章
- 传说中的贝叶斯统计到底有什么来头?
- mysql中的自关联详解_Laravel - MySQL数据库的使用详解6(Eloquent ORM用法3:模型关联、关联查询)...
- CodeForces-1294B排序+pair使用
- ECS:利用ECS进行深度学习详细攻略
- 计算机清灰后无法联网,修台电脑比窦娥还冤,清灰后电脑不开机,客户:刚刚还是好好的!...
- Java JUC工具类--Future
- python终端指令大全_使用python模拟命令行终端的示例
- jsp mysql 音乐网站_Maven+JSP+Servlet+C3P0+Mysql实现的音乐库管理系统
- FPGA笔试数电部分(一)
- Linux下tomcat的catalina.out文件过大,以及目录更改解决办法
- python自动填表单_用python-webdriver实现自动填表
- Servlet 身份验证体系结构
- 从MP3到种子王者海盗湾, 鬼知道今天的去中心化都经历了些什么
- 【黏住用户的不是小红书,而是它背后的那些人】
- es数据库查询API
- 爱马仕Hermès手表怎么样?
- mysql rand_mysql的rand函数
- 2022-2028年中国肉羊养殖行业市场行情动态及投资潜力研究报告
- 虚拟机概论(六)——JAVA虚拟机模型
- POJ 2245 Lotto G++
热门文章
- 算法(15)-leetcode-explore-learn-数据结构-运用递归解决二叉树的问题
- 算法(8)-leetcode-explore-learn-数据结构-链表
- STL源码剖析 内存基本处理工具 初始化空间的五个函数
- C++ 使用move来删除用户指定的文件
- H.264中的I_PCM模式
- C语言typedef关键字—伟大的缝纫师
- linux 查看 CPU 使用率
- 解决 : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
- Java中Web程序修改配置文件不重启服务器的方法
- php 两变量值互换 方法