我在运行64位Oracle 10.2的64位Itanium服务器上运行Windows Server 2003,并且想为Python 2.5安装cx_Oracle。我在Windows和Linux上多次使用过cx_Oracle,而且我之前也在这些平台的32位版本上编译过它,但我从未尝试过IA64编译。如何让cx_Oracle在64位Itanium Windows上运行?
cx_Oracle在http://cx-oracle.sourceforge.net/上的二进制版本都不是64位,并且在试图运行import cx_Oracle
时安装它们中的任何一个时出现错误,因此我想要做的事情是从源代码编译它。
当运行python setup.py build
时,我得到Python是用Visual Studio 2003构建的错误,而且我需要能够生成兼容的二进制文件的东西。我有Visual Studio 2005,由于链接到不同版本的C标准库,显然不适合帐单,并且可能出于其他原因。不幸的是,Visual Studio 2003不再可用于下载,我不确定从何处获得它。
因此,我从http://sourceforge.net/projects/mingw/files/下载MinGW,但这也只能以32位格式提供。无论如何,我会继续尝试,但是在编译关于我链接的一个Oracle DLL的错误信息时,它会给我一个错误,使其具有无效的文件格式。
在这一点上我有很多的选择,我不知道在哪里把我的努力:
我可以从http://sourceforge.net/projects/mingw-w64/下载64位MinGW和尝试使用,除了它似乎只能作为源,所以我不得不编译编译器,可能使用Visual Studio 2005.
我可以尝试使用x86的32位版本的Python,然后下载Oracle即时客户端SDK从http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html,然后用它来构建cx_Oracle。我可能必须将我的ORACLE_HOME设置为客户端,以便它不会尝试链接到64位服务器DLL,但这看起来可能会起作用。
我可以尝试从源代码编译Python本身,使用Visual Studio 2005,这样我就可以再使用Visual Studio 2005来构建cx_Oracle而不用担心二进制兼容性问题。我在Linux上多次从源代码编译Python,从来没有遇到任何问题,所以我想相信它在Windows上也是如此简单。
我可以尝试弄清楚如何使Visual Studio 2005链接与正确的DLL链接,从而以这种方式生成兼容的二进制文件,而不需要Visual Studio 2003.直观上,它似乎像Visual Studio应该能够生成兼容的二进制文件旧版本本身,但我几乎所有的编译器经验都与gcc有关,所以我不知道。
我真的不确定在哪里指导我的努力。有没有人对接下来要去哪里有任何建议?如果这会有所帮助,我可以复制/粘贴一些我收到的特定错误消息。
我特别喜欢听到任何曾经获得cx_Oracle工作在64位Itanium版Windows上的人 - 我不能成为第一个尝试这种方法的人。
+1祝你好运 – fupsduck 2010-01-09 00:10:58
由于sourceforge.net上的mingw-w64项目正在转向mingw-w64.org,我建议使用[mingw-w64.org](http://mingw-w64.org) – POQDavid 2015-07-02 19:31:14