DB Python

[Python] no module named cx_oracle の原因

Python no module named cx_oracle の原因

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 を設定する
以下の参考ページにあるように対応する。

  1. instant client を 公式サイトから入手する。
  2. 解凍したinstant clientのパスを環境変数の PATH に追加する
  3. 環境変数 TNS_ADMIN , ORACLE_HOME にもinstant clientのパスを記載する
  1. Get the instant client from here.
  2. Put the directory into your PATH variable.
  3. 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を入手して環境変数を設定すればエラーを解消できる。


コチラもオススメ

KRSW

駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

役に立ったらシェアしてくれると励みになります。

にほんブログ村 IT技術ブログへ

-DB, Python
-, ,

Translate »

Copyright© ITips , 2020 All Rights Reserved.