如何让cx_Oracle在64位Itanium Windows上运行?

时间:2010-01-07 22:04:16

标签: python windows 64-bit cx-oracle itanium

我在64位Itanium服务器上运行Windows Server 2003,该服务器也运行64位Oracle 10.2,我想为Python 2.5安装cx_Oracle。我曾经多次在Windows和Linux上使用过cx_Oracle,我之前也在这些平台的32位版本上编译过它,但我从来没有尝试过IA64编译。

http://cx-oracle.sourceforge.net/处的cx_Oracle的二进制版本都不是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,然后从http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html下载Oracle Instant Client SDK,然后使用它来构建cx_Oracle。我可能不得不将我的ORACLE_HOME设置为客户端,以便它不会尝试链接64位服务器DLL,但这似乎可能有效。

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

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

  5. 我真的不确定在哪里指导我的努力。有没有人对下一步去哪儿有什么建议?我可以复制/粘贴我得到的一些特定错误消息,如果这样做会有所帮助。

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

2 个答案:

答案 0 :(得分:1)

我最终选择了#2选项:我下载了32位Oracle Instant Client,然后使用即时客户端编译了32位Python的cx_Oracle。因此涉及的所有内容都是32位,而我只是没有使用任何IA64位可执行文件,这很好用。

如果我有一个IA64编译器,我会尝试选项#3,但事实证明Visual Studio Pro不支持IA64平台,我们需要花很多钱才能升级到更高级别的东西比Pro。

答案 1 :(得分:0)

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