Debian 5で、私はpythonのためにcx_Oracleモジュールをインストールしようとして成功していませんでした。まず、Oracle-xe-clientとその依存関係をインストールしました(次のリンクのチュートリアルに従ってください ここ )。
次に、/ usr/lib/Oracle/xe/app/Oracle/product/10.2.0/client/binのスクリプトを使用して環境にデータを入力しましたPATH、Oracle_HOME、NLS_LANGなどの変数。
これが完了したら、実行しようとしました:
Sudo easy_install cx_Oracle
しかし、次のエラーが発生し続けます。
Searching for cx-Oracle
Reading http://pypi.python.org/simple/cx_Oracle/
Reading http://cx-Oracle.sourceforge.net
Reading http://starship.python.net/crew/atuining
Best match: cx-Oracle 5.0.4
Downloading http://prdownloads.sourceforge.net/cx-Oracle/cx_Oracle-5.0.4.tar.gz?download
Processing cx_Oracle-5.0.4.tar.gz
Running cx_Oracle-5.0.4/setup.py -q bdist_Egg --dist-dir /tmp/easy_install-xsylvG/cx_Oracle-5.0.4/Egg-dist-tmp-8KoqIx
error: cannot locate an Oracle software installation
ここで見逃したものはありますか?
Rpmファイルを取得して、alienでインストールすることをお勧めします。そうすれば、後で実行できますapt-get purge no-longer-needed
。
私の場合 、必要なenv変数はLD_LIBRARY_PATH
、だから私はやった:
echo export LD_LIBRARY_PATH=/usr/lib/Oracle/11.2/client/lib >> ~/.bashrc
source ~/.bashrc
あなたの場合、パス変数は/usr/lib/Oracle/xe/app/Oracle/product/10.2.0/client/lib
。
別の方法は、RPMを必要としません。 root
である必要があります。
依存関係
次のパッケージをインストールします。
apt-get install python-dev build-essential libaio1
ダウンロードLinux x86-64のインスタントクライアント
Oracleの ダウンロードサイトから次のファイルをダウンロードします :
Zipファイルを抽出します
ダウンロードしたZipファイルをいくつかのディレクトリに解凍します。私は以下を使用しています:
/opt/ora/
環境変数の追加
を含むファイルを/etc/profile.d/Oracle.sh
に作成します
export Oracle_HOME=/opt/ora/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Oracle_HOME
を含むファイルを/etc/ld.so.conf.d/Oracle.conf
に作成します
/opt/ora/instantclient_11_2
次のコマンドを実行します
Sudo ldconfig
注:設定を適用するには再起動が必要な場合があります
シンボリックリンクを作成する
cd $Oracle_HOME
ln -s libclntsh.so.11.1 libclntsh.so
Install cx_Oracle
python package
pip
を使用してインストールできます
pip install cx_Oracle
または手動でインストールする
PythonおよびOracleバージョンに対応する cx_OracleソースZip をダウンロードします。その後、アーカイブを展開し、抽出されたディレクトリから実行します。
python setup.py build
python setup.py install
以下は、MacとLinuxの両方でうまくいきました。この1つのコマンドは、環境変数を設定する必要なく、必要な追加ファイルをダウンロードする必要があります。
python -m pip install cx_Oracle --pre
-preオプションは、Oracleドライバの開発およびプレリリース用です。この投稿の時点で、cx_Oracle-6.0rc1.tar.gz
、これは必要でした。 (python 3.6)を使用しています
Thx Burhan Khalid、「あなたはルートになる必要がある」という引用を見落としましたが、あなたがルートではないときの方法を見つけました here 。
ポイント7では、以下を使用する必要があります。
Sudo env Oracle_HOME=$Oracle_HOME python setup.py install
または
Sudo env Oracle_HOME=/path/to/instantclient python setup.py install
SudoにはOracle_HOMEを取得するアクセス権がない可能性があると思います。このようにすることができます。
須藤ビスド
テキストを変更します
デフォルトenv_keep + = "Oracle_HOME"
それから
Sudo python setup.py build install
Burhan Khalidに感謝します。ソフトリンクを作成するというあなたのアドバイスは、私のインストールが最終的に機能するようにします。
要点をまとめると:
インスタントクライアントの基本バージョンとSDKバージョンの両方が必要です
LD_LIBRARY_PATHとOracle_HOMEの両方を設定する必要があります
これはどこにも文書化されておらず、信じられないほどイライラさせられます。昨日、ソフトリンクを作成することがわからなかったため、失敗したビルドで3時間以上費やしました。
または、次の手順を使用して、PIPなしでcx_Oracleモジュールをインストールできます。
次のコマンドを使用してtarを抽出します(Linux)
gunzip cx_Oracle-6.1.tar.gz
tar -xf cx_Oracle-6.1.tar
cd cx_Oracle-6.1
モジュールを構築する
python setup.pyビルド
モジュールをインストールする
python setup.pyインストール
これは私のために働いた
python -m pip install cx_Oracle --upgrade
詳細については、Oracleクイックスタートガイドを参照してください。
https://cx-Oracle.readthedocs.io/en/latest/installation.html#quick-start-cx-Oracle-installation
これはちょうど私のために働いた Ubuntu 16:
Oracle Webサイトからダウンロード(「instantclient-basic-linux.x64-12.2.0.1.0.Zip」および「instantclient-sdk-linux.x64-12.2.0.1.0.Zip」)してから次のスクリプト(1つずつ実行できますが、ROOTとして実行しました):
apt-get install -y python-dev build-essential libaio1
mkdir -p /opt/ora/
cd /opt/ora/
## Now put 2 Zip files:
# ('instantclient-basic-linux.x64-12.2.0.1.0.Zip' and 'instantclient-sdk-linux.x64-12.2.0.1.0.Zip')
# into /opt/ora/ and unzip them -> both will be unzipped into 1 directory: /opt/ora/instantclient_12_2
rm -rf /etc/profile.d/Oracle.sh
echo "export Oracle_HOME=/opt/ora/instantclient_12_2" >> /etc/profile.d/Oracle.sh
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Oracle_HOME" >> /etc/profile.d/Oracle.sh
chmod 777 /etc/profile.d/Oracle.sh
source /etc/profile.d/Oracle.sh
env | grep -i ora # This will check current ENVIRONMENT settings for Oracle
rm -rf /etc/ld.so.conf.d/Oracle.conf
echo "/opt/ora/instantclient_12_2" >> /etc/ld.so.conf.d/Oracle.conf
ldconfig
cd $Oracle_HOME
ls -lrth libclntsh* # This will show which version of 'libclntsh' you have... --> needed for following line:
ln -s libclntsh.so.12.1 libclntsh.so
pip install cx_Oracle # Maybe not needed but I did it anyway (only pip install cx_Oracle without above steps did not work for me...)
pythonスクリプトは 'cx_Oracle'を使用する準備ができました...お楽しみください!
MACにインストールしようとしている場合は、ダウンロードしたOracleクライアントを解凍して、python scripts。が動作するようになります。
環境変数の設定の問題が多すぎます。それは私のために働いた。
お役に立てれば。
ありがとう