3

64ビットのOracle10.2も実行している64ビットのItaniumサーバーでWindowsServer2003を実行していますが、Python2.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で構築されており、互換性のあるバイナリを生成できるものが必要であるというエラーが表示されます。私はVisualStudio2005を持っていますが、これはC標準ライブラリの別のバージョンとリンクしているため、そしておそらく他の理由でも、明らかに法案に適合していません。残念ながら、Visual Studio 2003はダウンロードできなくなり、どこで入手できるかわかりません。

だから私はhttp://sourceforge.net/projects/mingw/files/からMinGWをダウンロードしますが、これも32ビット形式でのみ利用可能です。とにかく試してみますが、リンクしているOracle DLLの1つについて、コンパイル中にエラーが発生し、ファイル形式が無効になります。

この時点で、私にはたくさんの選択肢があり、どこに努力すればよいかわかりません。

  1. 64ビットのMinGWをhttp://sourceforge.net/projects/mingw-w64/からダウンロードして使用してみることができますが、ソースとしてのみ使用できるように見えるため、コンパイラをコンパイルする必要があります。 VisualStudio2005。

  2. Pythonのx8632ビットビルドを使用してみて、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を必要とせずに、その方法で互換性のあるバイナリを生成する方法を理解することができます。直感的には、VisualStudioは古いバージョンのそれ自体と互換性のあるバイナリを生成できるはずです。しかし、私のコンパイラーの経験のほとんどはgccを使用しているので、よくわかりません。

私は自分の努力をどこに向けるべきか本当によくわかりません。誰かが次にどこに行くべきかについて何か提案がありますか?役立つ場合は、受け取った特定のエラーメッセージの一部をコピーして貼り付けることができます。

特に、cx_Oracleを64ビットのItaniumバージョンのWindowsで動作させたことがある人からの連絡をお待ちしています。これを最初に試すことはできません。

4

2 に答える 2

1

最終的にオプション#2を選択しました。32ビットのOracle Instant Clientをダウンロードしてから、インスタントクライアントを使用して32ビットPython用にcx_Oracleをコンパイルしました。したがって、関連するものはすべて32ビットであり、IA64ビットの実行可能ファイルを使用していません。これは問題なく機能します。

IA64コンパイラを使用している場合は、オプション#3を試してみますが、Visual Studio ProはIA64プラットフォームをサポートしていないことがわかり、Proよりも高いものにアップグレードするには多額の費用が必要になります。

于 2010-01-18T21:37:48.163 に答える
0

私は昨日これを読みましたが、誰も答えていないことに驚いていません。これは非常に具体的で複雑な質問です。私はあなたが扱っているツールの多くを直接経験したことはありませんが、さまざまなコンパイラやバイナリとの非互換性を取り巻く問題については詳しく説明しました。その価値のために3.あなたの最善の策のように聞こえます。

于 2010-01-09T00:09:26.060 に答える