我在 64 位 Itanium 服务器上运行 Windows Server 2003,该服务器还运行 64 位 Oracle 10.2,并且我想安装适用于 Python 2.5 的 cx_Oracle。我之前在 Windows 和 Linux 上多次使用过 cx_Oracle,并且之前也在这些平台的 32 位版本上编译过它,但我从未尝试过 IA64 编译。
没有 cx_Oracle 的二进制版本http://cx-oracle.sourceforge.net/ http://cx-oracle.sourceforge.net/是 64 位的,在安装其中任何一个后尝试运行时出现错误import cx_Oracle
所以我认为要做的就是从源代码编译它。
跑步时python setup.py build
然后我收到错误,Python 是用 Visual Studio 2003 构建的,我需要一些可以生成兼容二进制文件的东西。我有 Visual Studio 2005,由于链接到不同版本的 C 标准库,并且可能还有其他原因,它显然不符合要求。不幸的是,Visual Studio 2003 不再提供下载,而且我不知道从哪里可以获得它。
所以我从下载 MinGWhttp://sourceforge.net/projects/mingw/files/ http://sourceforge.net/projects/mingw/files/但这也仅以 32 位形式提供。无论如何,我继续尝试一下,但在编译过程中,它给了我一个错误,关于我链接的 Oracle DLL 之一具有无效的文件格式。
此时我有很多选择,但我不知道该把精力放在哪里:
我可以从以下位置下载 64 位 MinGWhttp://sourceforge.net/projects/mingw-w64/ http://sourceforge.net/projects/mingw-w64/并尝试使用它,但它似乎只能作为源代码使用,因此我必须编译编译器,可能使用 Visual Studio 2005。
我可以尝试使用 x86 32 位 Python 版本,然后从以下位置下载 Oracle Instant Client SDK:http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html然后用它来构建 cx_Oracle。我可能必须将 ORACLE_HOME 设置为客户端,以便它不会尝试链接 64 位服务器 DLL,但这似乎可能有效。
我可以尝试使用 Visual Studio 2005 从源代码编译 Python 本身,这样我就可以使用 Visual Studio 2005 构建 cx_Oracle,而不必担心二进制兼容性问题。我已经在 Linux 上从源代码编译了很多次 Python,从来没有遇到过任何问题,所以我愿意相信它在 Windows 上也一样简单。
我可以尝试弄清楚如何使 Visual Studio 2005 链接到正确的 DLL,从而以这种方式生成兼容的二进制文件,而不需要 Visual Studio 2003。直观地看,Visual Studio 应该能够生成与其自身旧版本兼容的二进制文件,但几乎我所有的编译器经验都是使用 gcc,所以我真的不知道。
我只是真的不知道该把我的努力用在哪里。有人对下一步该去哪里有什么建议吗?如果有帮助的话,我可以复制/粘贴我收到的一些具体错误消息。
我特别希望听到任何曾经让 cx_Oracle 在 64 位 Itanium 版本的 Windows 上工作的人的意见 - 我不能是第一个尝试这个的人。
我最终选择了选项#2:我下载了 32 位 Oracle Instant Client,然后使用即时客户端编译了适用于 32 位 Python 的 cx_Oracle。所以涉及的所有内容都是 32 位的,我只是没有使用任何 IA64 位可执行文件,而且这工作得很好。
如果我有 IA64 编译器,我会尝试选项#3,但事实证明 Visual Studio Pro 不支持 IA64 平台,我们需要花很多钱升级到比 Pro 更高的版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)