Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Python

PythonでSQLAlchemyを使ってOracleDBに接続する際に遭遇したエラーとその対処方法

投稿日:2020年3月10日 更新日:

本記事は次の記事の続編です。
(下記記事の手順を実行する際に遭遇したエラーについての備忘録)
PythonでSQLAlchemyを使ってOracleDBに接続する方法

(0) 目次

(4) エラー対応
 (4-1) エラー1:Cannot locate a 64-bit Oracle Client library
  (4-1-1) エラー原因
  (4-1-2) インストール状況の確認
  (4-1-3) 対処方法
 (4-2) エラー2:
  (4-2-1) エラー原因
  (4-2-2) 対処方法
 (4-3) XXX is not a supported wheel on this platform

(4) エラー対応

(4-1) エラー1:Cannot locate a 64-bit Oracle Client library

(図411)エラー画面

(4-1-1) エラー原因

Oracle Instant Clientライブラリがインストールされていない事が原因と推定されます。

sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://oracle.github.io/odpi/doc/installation.html#windows for help

 

PythonからOracleデータベースに接続するには”cx_Oracle”ドライバのみならず”Oracle Instant Client”ライブラリのインストールも必要です。
(図101)

(4-1-2) インストール状況の確認

インストールされている場合は「instantclient_XX_X」(“X”はバージョン番号)のディレクトリがどこかにあるはずなので、確認コマンド等でチェックできます。次のコマンドの例はCドライブの直下を再帰的に検索して「installclient」という文言を含むファイルやディレクトリを検索しています。

dir instantclient* /S

(図411)

目次にもどる

(4-1-3) 対処方法

もし上記の手順で「instantclient_XX_X」のフォルダが存在しない場合、下記リンクで説明している手順にて「Oracle Instant Client」のインストールを実施します。
■Oracle Instant Clientの導入方法について

目次にもどる

(4-2) エラー2:ORA-12541: TNS:no listener

(4-2-1) エラー原因

このエラーは接続先のデータベースサーバにて、リスナーが見当たらない場合に出力されるもので、接続要求を受けるDBサーバー側でリスナーが起動していない等のケースが想定されます。

・エラー前半部分

cx_Oracle.DatabaseError: ORA-12541: TNS:no listener

The above exception was the direct cause of the following exception:

・エラー後半部分

sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) ORA-12541: TNS:no listener
(Background on this error at: http://sqlalche.me/e/4xp6)

(図429)

目次にもどる

(4-2-2) 対処方法

リスナーが起動していないケースの場合、下記にて説明している手順でリスナーの状態チェックや起動を行います。
①リスナーの状態確認~起動
②データベースの状態確認~起動

■SQL Developer接続エラーへの対処(ORA-12514, ORA-12505)

目次にもどる

(4-3) XXX is not a supported wheel on this platform

このエラーが出た場合、インストールしようとしたパッケージの対応OSが実際のOSと異なっている可能性があります。次の例はWindows 64bitのOSを持つサーバにLinux用の”Oracle Instant Client”をインストールしようとした際のエラーです。

(図431)

正しくWindows 64bit用の資源でインストールしたら正常に終了しました。

XXX_win32.whl →Win32bit用
XXX_manylinux1_x86_64.whl →Linux系OS用
XXX_win_amd64.whl →Win64bit用

インストールの手順については下記にて記載しています。
■cx_Oracleのインストール方法

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Python

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Anacondaのインストール手順(Windows 10の例)

  <目次> (1) Anacondaのインストール手順(Windows 10の例)  (1-1) STEP1:インストーラーの入手と起動  (1-2) STEP2:インストール  (1-3 …

「pyenv」の導入後も「System Python」が有効になってしまう事象の原因と対処について

  <目次> (1) 「pyenv」の導入後も「System Python」が有効になってしまう事象の原因と対処について  (1-1) 問題点の整理  (1-2) 原因&対策(1つ目)  ( …

Pythonのdatapackage学習中に遭遇したエラー「StopIteration」と「AttributeError」の対応

(0)目次&概説 (1) 記事の目的 (2) エラー1:AttributeError: ‘generator’ object has no attribute ‘n …

Python環境にpyodbcをインストールしてSQLServerに接続する手順

<目次> (1) PythonにpyodbcをインストールしてSQLServerに接続する手順  (1-1) 手順1:ODBCドライバのインストール  (1-2) 手順2:pythonパッケージの導入 …

PythonにOpenCVを導入して画像を読込み&表示&拡大縮小してみる

(0)目次&概説 (1) OpenCVとは (2) OpenCVのインストール  (2-1) インストール資源の入手  (2-2) インストール時の注意事項  (2-3) インストールの実行 (3) …

  • English (United States)
  • 日本語
Top