web-dev-qa-db-ja.com

Python cx_Oracleクライアントライブラリをロードできません

Oracleデータベースに接続しようとしていますが、pythonスクリプトがcx_Oracleを見つけられません。これが私のスクリプトです。

import cx_Oracle
con = cx_Oracle.connect(‘DBNAME/[email protected]:1521/yeppers’)
print(con.version)
con.close()

これは私が得るエラーです:

================= RESTART: C:\Python35\Connect_To_Oracle.py =================
Traceback (most recent call last):
  File "C:\Python35\Connect_To_Oracle.py", line 1, in <module>
   import cx_Oracle
cx_Oracle.DatabaseError: DPI-1047: Oracle Client library cannot be loaded: The specified module could not be found. See https://Oracle.github.io/odpi/doc/installation.html for help

これが私のO/Sとバージョン情報です。

  • Intel Xeon CPU E7-4870 @ 2.40GHz
  • Windows Server 2008 R2エンタープライズ
  • Python 3.5

これはcx_Oracleをインストールするために私がしたことです:

1. Download Instant Client (Basic Client) from Oracle here : http://www.Oracle.com/technetwork/topics/winx64soft-089540.html .
2. Unzip.
3. I added a new System Variable called Oracle_HOME and pointed it to c:\Down\InstantClient , which is where I unzipped the above.  This is what I downloaded: instantclient-basic-windows.x64-12.2.0.1.0
4. You have to download the whl file from here: https://pypi.python.org/pypi/cx_Oracle/  To do this, you need to know your version of Python and your type of processor.  
5. You download into the scripts folder and then run pip install wheelfilename.whl

誰かがエラーの原因を教えてくれませんか?

4
user8340926

python=環境をセットアップしているときに、WindowsボックスのPATH変数にinstantclientファイルを追加しましたが、Oracle_HOMEの定義もありません。PATHに追加すると、プロセス。

しかし、whlファイルをインストールしたときに、エラーやメッセージはありませんでしたか?

代わりに、pipを介してcx_Oracleモジュールをインストールできますか? cx_OracleのWebサイトには、コマンドがpython -m pip install cx_Oracleとしてリストされていますが、PATH変数が正しく設定されていれば、pip3 install cx_Oracleを使用してコマンドを実行できるはずです。

$ Python/Lib/site-packages /ディレクトリにcx_Oracleがありますか?サイトパッケージが見つからない場合は、IDLE内でこれを使用して、場所を探します。

>>> import site
>>> site.getsitepackages()
['C:\\Python36', 'C:\\Python36\\lib\\site-packages']
2
stephen

https://www.Oracle.com/technetwork/topics/winx64soft-089540.html からOracleインスタントクライアントをダウンロードし、フォルダーの場所をWindowsパスに追加することで問題を解決しました。私のためにうまくいきました!

0
Abhishek Poudel