0

古いバージョンの Python にとらわれたくないので、Active Python を使用しています。インスタント クライアントをインストールし、エクスポートを bash プロファイルに追加しましたが、次の不可解なエラーが発生します。

# apy setup.py install --no-compile --root=/tmp/tmpz0JuWASA/cx_Oracle-5.1/_pypminstroot
インストールの実行中
実行中のビルド
build_ext の実行
「cx_Oracle」拡張機能の構築
gcc -pthread -fno-strict-aliasing -fPIC -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/oracle/11.2/sdk/include -I/opt/ ActivePython-2.7/include/python2.7 -c cx_Oracle.c -o build/temp.linux-x86_64-2.7-11g/cx_Oracle.o -DBUILD_VERSION=5.0.4
/opt/ActivePython-2.7/include/python2.7/Python.h:58 からインクルードされたファイルで、
                 cx_Oracle.c:6 から:
/opt/ActivePython-2.7/include/python2.7/pyport.h:849:2: エラー: #error "LONG_BIT 定義がプラットフォームに対して間違っているようです (gcc/glibc 構成が正しくありませんか?)。"
/usr/lib/oracle/11.2/sdk/include/oci.h:3029 からインクルードされたファイルで、
                 cx_Oracle.c:10 から:
/usr/lib/oracle/11.2/sdk/include/ociap.h:10788: 警告: 関数宣言はプロトタイプではありません
/usr/lib/oracle/11.2/sdk/include/ociap.h:10794: 警告: 関数宣言はプロトタイプではありません
エラー: コマンド 'gcc' が終了ステータス 1 で失敗しました
4

3 に答える 3

1

パスにクライアント SDK が存在することを確認してください。私が試した Oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm には、sdk が付属していませんでした。そのため、zipバージョンをダウンロードする必要がありました。

これを .bash_rc に追加します

export DYLD_LIBRARY_PATH=$ORACLE_HOME

これに加えて、Python 2.7 には、Python 3.4 でデフォルトで使用できる Python.h が付属していません。したがって、python-devel パッケージをインストールすることもお勧めします。

yum install python-devel

これで問題は解決するはずです。

于 2014-11-19T13:04:11.353 に答える
-1

まず、アクティブ状態の配布は別の配布であり、常にpython.orgからのリリースに従います。したがって、python.orgからも最新のリリースを入手できます。私は、あなたは少し古いかもしれないシステムがインストールされたpythonを意味したと思います。

次に、Redhatのインストールで、gcc、glibcなどの開発ツールとヘッダーがインストールされているかどうかを確認します。cx_Oracleページにあるビルド手順を次に示します。あなたがそれらに従っていることを確認してください。

于 2011-06-22T15:46:23.970 に答える