公装设计网站,巨省网站,公司的网站哪个部门做,黑龙江建筑工程网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 分发版本。这个分发… 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-configC:\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分发包中这可能是最易用的版本了。