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

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

関連記事

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

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

PythonのSQLAlchemyで「ArgumentError : Could not parse rfc1738 URL」エラーや「InvalidRequestError: Could not reflect: requested tables(s)」エラーが出た時の対処について

(0)目次&概説 (1) エラー対応1:sqlalchemy.exc.ArgumentError  (1-1) 発生状況・エラーメッセージ   (1-1-1) エラーメッセージ   (1-1-2) エ …

Pythonで画面作成をtkinterで行う方法(入門編)

<目次> (1) Pythonで画面作成をtkinterで行う方法(入門編)  (1-1) tkinterとは?  (1-2) STEP1:tkinterモジュールのインポート  (1-3) STEP …

PythonのSQLAlchemyで「Identifier ‘XXX’ exceeds maximum length of 30 characters」エラーや「DtypeWarning: Columns (X) have mixed types.」警告が出た時の対処について

(0)目次&概説 (1) エラー1:sqlalchemy.exc.ArgumentError  (1-1) 発生状況・エラーメッセージ   (1-1-1) エラーメッセージ   (1-1-2) エラー …

Python開発環境にPandasライブラリをインストールする手順

(0)目次&概説 (1) Pandasの導入  (1-1) Pandasとは? (2) オフラインインストール  (2-1) インストール資源の入手  (2-2) インストール時の諸注意  (2-3) …

  • English (United States)
  • 日本語
Top