6

cx_oracle のインストールに問題があります。Oracle InstantClient と cx_oracle Oracle パッケージをインストールしましたが、cx_oracle のインポート中にこのエラーが発生します。ホストとしてubuntu 11.10を実行しています。

import cx_Oracle
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: /usr/lib/python2.7/dist-packages/cx_Oracle.so: undefined symbol:PyUnicodeUCS2_AsEncodedString

誰もがこの問題を解決する方法を知っています

乾杯

4

2 に答える 2

3

ほとんどの場合、インストールされている Python は別の Unicode 形式 (ucs4) を使用しており、cx_oracle は ucs2 でコンパイルされています。

unicode フラグを指定して cx_Oracle 5.0.4 をインストールできます。それは私にとってはうまくいきましたが、いくつかのバグがあります:奇妙なOracleエラー:「無効なフォーマットテキスト」

または、最新の cx_oracle を自分でコンパイルします。 http://mrpolo.com.ve/?p=178 (私が知らない言語ですが、役に立ちました)

于 2011-11-05T16:51:24.517 に答える
1

@froZieglersの回答に追加します。このページにたどり着いたときcx_Oracle、「... Unicode...」-ダウンロードするバリアントはもうありませんでした。幸いなことに、ソースから自分でコンパイルすることは、思ったほど面倒ではありませんでした。

ここに私がしたことの要約があります(Ubuntu 12.04 LTS、64ビット):

  • 適切なOracle XE クライアント rpmをエイリアン (11g、64 ビットなど) で インストールします。
    • もちろん/u01/...、私も調整する必要が.profileありました。
  • cx_Oracle source-tar、untar、cd を ダウンロードします
    • テキストファイルln -sで述べたように、Oracleのso-libでコマンドを実行しましたBUILD
  • Pythonヘッダーをインストールしますsudo aptitude install python-dev
  • コンパイルpython setup.py build
  • インストールsudo python setup.by install
    • 最初の試行は失敗しましたdistutils.errors.DistutilsSetupError: cannot locate an Oracle software installation
    • setup.pyに設定でパッチuserOracleHome = "/u01/app/oracle/product/11.2.0/xe"os.getenv("ORACLE_HOME")
    • sudo python setup.by installその後働いた
  • python -c 'import cx_Oracle'成功したことを確認します。
于 2012-07-30T09:13:41.903 に答える