質問

64ビットのiTaniumサーバーでWindows Server 2003を実行しています。これは64ビットOracle 10.2も実行されています。Python2.5用のCX_ORACLEをインストールしたいと思います。 WindowsとLinuxの両方で何度もcx_oracleを使用しましたが、これらのプラットフォームの32ビットバージョンでもコンパイルしましたが、IA64コンパイルを試したことはありません。

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はダウンロードできなくなりました。どこで入手できるかわかりません。

そこで、Mingwからダウンロードします http://sourceforge.net/projects/mingw/files/ ただし、これは32ビットフォームでのみ利用できます。とにかく試してみてください。しかし、それは私がリンクしているOracle DLLの1つについてのコンピレーション中に、無効なファイル形式を持っていることとリンクしていることについてエラーを与えてくれます。

この時点で、私にはたくさんの選択肢があり、私の努力をどこに置くべきかわかりません:

  1. 64ビットMINGWからダウンロードできます http://sourceforge.net/projects/mingw-w64/ それを使用してみてください。ただし、ソースとしてのみ利用できるように見えるので、おそらくVisual Studio 2005を使用してコンパイラをコンパイルする必要があります。

  2. x86 32ビルのPythonを使用して、Oracle InstantクライアントSDKをダウンロードすることができました。 http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html そして、それを使用してCX_ORACLEを構築します。 64ビットサーバーDLLとリンクしようとしないように、クライアントにOracle_homeを設定する必要があるでしょうが、これはうまくいくようです。

  3. Visual Studio 2005を使用してPython自体をソースからコンパイルしてみて、Visual Studio 2005を使用してCX_ORACLEを構築し、バイナリの互換性の問題について心配することができませんでした。 LinuxでSourceのPythonを何度も編集しましたが、問題はなかったので、Windowsでは簡単だと信じたいと思います。

  4. Visual Studio 2005リンクを適切なDLLに対して作成する方法を見つけて、Visual Studio 2003を必要とせずに互換性のあるバイナリを生成する方法を見つけようとすることができます。しかし、私のコンパイラエクスペリエンスのほとんどはGCCとのものなので、私は本当に知りません。

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

CX_ORACLEを64ビットのItaniumバージョンのWindowsで作業させたことがある人から聞いてみたいと思います。これを試してみることはできません。

役に立ちましたか?

解決

I ended up going with Option #2: I downloaded the 32-bit Oracle Instant Client, then compiled cx_Oracle for 32-bit Python with the instant client. So everything involved is 32-bit, and I'm just not using any IA64-bit executables, and this works just fine.

If I had an IA64 compiler, I'd try Option #3, but it turns out that Visual Studio Pro doesn't support the IA64 platform, and we'd need to spend a lot of money to upgrade to whatever's higher than Pro.

他のヒント

I read this yesterday and am not suprised to see that nobody has answered. It is a very specific and complex question. While I do not have direct experience with many of the tools you are dealing with I have delt with the issues surrounding incompatabilities with different compilers and binaries. For what its worth 3. sounds like your best bet.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top