PythonからOracle DBに接続する為のcx_oracle。
pip install したのに no module named cx_oracle
のエラーが出てしまう。
一体何故 no module named cx_oracle
エラーが発生するのか。
今回はその原因と対策について紹介する。
原因
エラーメッセージを見ると cx_oracle
のモジュールがインストールされていなくてエラーになっているように見える。
しかし pip install 済みの場合は原因は別にある。
隠された原因。
それはOracle Client。
Oracle DBに接続する為のClientが無い場合もPythonは no module named
エラーを出してしまう。
対策
対策としてはOracle Client を設定する。
以下の参考ページにあるように対応する。
- instant client を 公式サイトから入手する。
- 解凍したinstant clientのパスを環境変数の
PATH
に追加する - 環境変数
TNS_ADMIN
,ORACLE_HOME
にもinstant clientのパスを記載する
- Get the instant client from here.
- Put the directory into your PATH variable.
- Go to the command prompt (Win+R and type cmd) and set 2 variables matching your location- for example:
set TNS_ADMIN=C:\instant_client\instantclient_11_2
set ORACLE_HOME=C:\instant_client\instantclient_11_2
正しく設定がされれば no module named cx_oracle
のエラーは解消されるはずだ。
まとめ
- pip install したのに
no module named cx_oracle
のエラーが出る原因はOracle Clientが無いから。 - Oracle Instant Clientを入手して環境変数を設定すればエラーを解消できる。