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開発環境にPandasライブラリをインストールする手順

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

Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処方法について

  <目次> (1) Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処 …

pyenvの使い方(基礎編)をご紹介

  <目次> (1) pyenvの使い方(基礎編)をご紹介  (1-1) STEP1:インストール系のコマンド  (1-2) STEP2:バージョンの適用/切り替え系のコマンド  (1-3) …

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) エラー …

Python3.5&Anaconda4.2のインストール手順(CentOS6)とHelloWorldの方法

(0)目次&概説 (1) インストール資源の入手  (1-1) ディストリビューション  (1-2) GitHubのpyenvのリポジトリのコピーを取得する (2) インストールの実施  (2-1) …

  • English (United States)
  • 日本語
Top