2010-01-07 34 views
3

我在运行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的错误信息时,它会给我一个错误,使其具有无效的文件格式。

在这一点上我有很多的选择,我不知道在哪里把我的努力:

  1. 我可以从http://sourceforge.net/projects/mingw-w64/下载64位MinGW和尝试使用,除了它似乎只能作为源,所以我不得不编译编译器,可能使用Visual Studio 2005.

  2. 我可以尝试使用x86的32位版本的Python,然后下载Oracle即时客户端SDK从http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html,然后用它来构建cx_Oracle。我可能必须将我的ORACLE_HOME设置为客户端,以便它不会尝试链接到64位服务器DLL,但这看起来可能会起作用。

  3. 我可以尝试从源代码编译Python本身,使用Visual Studio 2005,这样我就可以再使用Visual Studio 2005来构建cx_Oracle而不用担心二进制兼容性问题。我在Linux上多次从源代码编译Python,从来没有遇到任何问题,所以我想相信它在Windows上也是如此简单。

  4. 我可以尝试弄清楚如何使Visual Studio 2005链接与正确的DLL链接,从而以这种方式生成兼容的二进制文件,而不需要Visual Studio 2003.直观上,它似乎像Visual Studio应该能够生成兼容的二进制文件旧版本本身,但我几乎所有的编译器经验都与gcc有关,所以我不知道。

我真的不确定在哪里指导我的努力。有没有人对接下来要去哪里有任何建议?如果这会有所帮助,我可以复制/粘贴一些我收到的特定错误消息。

我特别喜欢听到任何曾经获得cx_Oracle工作在64位Itanium版Windows上的人 - 我不能成为第一个尝试这种方法的人。

+0

+1祝你好运 – fupsduck 2010-01-09 00:10:58

+1

由于sourceforge.net上的mingw-w64项目正在转向mingw-w64.org,我建议使用[mingw-w64.org](http://mingw-w64.org) – POQDavid 2015-07-02 19:31:14

回答

1

我最终选择了Option#2:我下载了32位Oracle Instant Client,然后为即时客户端编译了32位Python的cx_Oracle。因此,所涉及的一切都是32位的,我只是没有使用任何IA64位可执行文件,而且这种方式工作得很好。

如果我有一个IA64编译器,我会尝试选项#3,但事实证明,Visual Studio Pro不支持IA64平台,我们需要花费大量资金升级到任何高于Pro。

0

我昨天看到这个,我不惊讶地看到没有人回答。这是一个非常具体和复杂的问题。虽然我没有直接与您处理的许多工具的经验,但我已经用不同的编译器和二进制文件解决了不兼容问题。对于它的价值3听起来像是你最好的选择。

相关问题