2010-01-07 60 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聽起來像是你最好的選擇。

相關問題