ホームページ > バックエンド開発 > Python チュートリアル > cx_Oracle モジュールをインストールする手順の詳細な説明

cx_Oracle モジュールをインストールする手順の詳細な説明

Y2J
リリース: 2017-05-10 11:52:49
オリジナル
3619 人が閲覧しました

この記事では主に python cx_Oracle モジュールのインストールと使用に関する関連情報を詳しく紹介しますので、必要な方は参考にしてください

python cx_Oracle モジュールのインストール

最近データ移行スクリプトを書く必要があります。データを単一の Oracle に移行するには データを MySQL シャーディングクラスターに移行します。 linux に cx_Oracle をインストールするのはまだ少し面倒です。

Oracle クライアントの場合、対応する Python モジュール (ここでは Oracle の公式 Python モジュール - cx_Oracle を使用しました) をインストールする必要があるだけでなく、通常はインスタント クライアントを選択するだけで十分です。 tnsnames.ora も設定する必要があります (もちろん、単に host:port/schema を通じてアクセスすることもできます)。

インストール:

1. まずバージョンを決定します。 Oracle データは少し古いため、古いバージョンである Oracle Instant Client 10.2.0.4 を選択しました。

2. instantclient-basic をダウンロードします。ダウンロードアドレス: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html。これは Oracle に対する重大な問題です。ダウンロードする前に登録する必要があります。重要なのは、登録時にパスワードには大文字と小文字を使用する必要があるということです。少なくとも 8 文字。彼らは私に、銀行のパスワードよりも安全なパスワードを取得するよう強制し(OK、入力した内容を忘れてしまいました…)、ベーシックをダウンロードするだけでした。

3. インストールと設定

$unzip instantclient-basic-linux.x64-10.2.0.4.0.zip
$cd instantclient_10_2
$cp * /usr/lib  #直接放到动态库搜索路径中,不需要额外的环境配置

或
$unzip instantclient-basic-linux.x64-10.2.0.4.0.zip
$cp -rf instantclient_10_2 /opt/
$vi /etc/profile
   export ORACLE_HOME=/opt/instantclient_10_2
   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME

$source /etc/profile
ログイン後にコピー

4. tnsnames.ora を設定します (tns を設定する必要はありません)

tnsnames.ora は実際には存在しないので、自分で作成する必要があることに注意してください (これも面倒ですが、最初は必要だと思いました)何をインストールするか.)、私はこの方法を使用したことがありません。興味がある場合は、Googleで調べてください。

5. cx_Oracle Python モジュールをダウンロードしてインストールします

$wget downloads.sourceforge.net/project/cx-oracle/5.1.2/cx_Oracle-5.1.2-10g-py26-1.x86_64.rpm
$rpm -ivh cx_Oracle-5.1.2-10g-py26-1.x86_64.rpm 
$ls /usr/lib/python2.6/site-packages/cx_Oracle.so #有这个文件表示安装成功,根据python的位置,也可能在其他地方,自己找一下吧
ログイン後にコピー

6. 検証と問題解決

$python
>>import cx_Oracle
ログイン後にコピー

エラーが報告された場合: import cx_Oracle で ImportError: libclntsh.so.10.1: 共有オブジェクト ファイルを開けません: そのようなファイルはありませんまたはディレクトリ

インスタントクライアントの動的ライブラリが見つからないことを意味します。環境

変数

が設定されているか、有効であるか、バージョンが正しいかどうかを確認してください。 エラーが報告された場合: ImportError: ./cx_Oracle.so: un 未定義のシンボル: PyUnicodeUCS4_Decode

Google的信息:There is nothing wrong with Debian. Python supports two incompatible 
 modes of operation for Unicode, UCS2 (the default), and UCS4. Debian uses the default,
 Redhat uses UCS4. You need to recompile the extension for UCS-2 mode
 (i.e. using a Debian installation); this would fix the undefined symbol: PyUnicodeUCS4_Decode
ログイン後にコピー

そこで、python

$./configure --prefix=/usr/local/python2.6.5 --enable-shared -enable-unicode=ucs4
$make;make install
ログイン後にコピー

を再コンパイルして再度確認すると、最終的にインポートが正常に行われます。

使用法:


1. 基本的な接続 – Oracle tns エイリアスを使用します

connection =cx_Oracle.connect("tp/tp@ocn_test")
#查看tns alias命令
cmd>tnsping ocn_test
TNS Ping Utility forLinux: Version 9.2.0.8.0-Production on 27-SEP-201110:47:48
Copyright (c) 1997, 2006, Oracle Corporation. Allrights reserved.
Used parameter files:
/opt/……/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL =TCP)(HOST =10.20.36.19)(PORT =1520))) (CONNECT_DATA =(SID =ocntest)))
OK (10msec)
ログイン後にコピー

2. ユーザーは、接続するためのパスワードを入力します

pwd =getpass.getpass()
connection =cx_Oracle.connect("tp",pwd,"ocn_test")
ログイン後にコピー

3. ユーザーは、Python コマンドに接続アカウント情報を直接入力します。 python script.py tp/tp @ocn_test

connection =cx_Oracle.connect(sys.argv[1])
ログイン後にコピー

4. Easy Connect 構文を使用して、Drive

を介してデータベースに接続します。5. まず、DSN を使用して TNSNAME

tns_name =cx_Oracle.makedsn('10.20.36.19','1521',' ocntest ')
connection =cx_Oracle.connect('tp','tp',tns_name)
ログイン後にコピー

としてログインします。 Linux サーバーで Oracle 操作を実行中にエラーが発生しました:

connection =cx_Oracle.connect('tp/tp@ocn_test', mode=cx_Oracle.SYSDBA)
#or as SYSOPER
connection =cx_Oracle.connect('tp/tp@ocn_test', mode=cx_Oracle.SYSOPER)
ログイン後にコピー

【関連する推奨事項】

1.

Python オブジェクト指向ビデオ チュートリアル

3. Python の基本入門マニュアル

以上がcx_Oracle モジュールをインストールする手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート