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を入手して環境変数を設定すればエラーを解消できる。


ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

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

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-DB, Python
-, ,

© 2024 ITips