程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python3 Linux下連接oracle數據庫,報錯解決。

編輯:Python

linux環境下使用python連接Oracle需要使用cx-Oracleinstantclient


一、安裝cx_Oracle

外網環境直接

pip install cx_Oracle

內網環境
去官網上下載wheel文件,導入內網環境後install

import cx_Oracle
conn = cx_Oracle.connect(rkcx_zhanghao/[email protected]:31521/rkqry)

直接運行會報錯

cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: " libclntsh.so: cannot open shared object file: No such file or directory".

是因為環境變量配置不正確,導致libclntsh.so這個文件沒有找到


二、Oracle Instant Client

Oracle官網

檢查Oracle數據庫的版本以及系統類型下載相應的文件!!!
我的oracle是11.2.0版本的對應下載壓縮包:

instantclient-basic-linux.x64-11.2.0.4.0.zip

linux環境客戶端需要依賴 libaio yum install libaio

然後新建一個文件夾

mkdir -p /home/test/oracle

壓縮包移過去後,解壓

unzip instantclient-basic-linux.x64-11.2.0.4.0.zip

解壓完成後,生成新生成的文件夾 instantclient_11_2
新增環境配置,在用戶路徑下 ls -a 查看 .bash_profile文件。

系統配置為
[[email protected]_191 ~]# vim /etc/.bash_profile
只為當前用戶配置為
[[email protected]_191 ~]# vim /home/test/.bash_profile

打開文件後
在~/.bash_profile文件末尾加入以下內容

export LD_LIBRARY_PATH=/home/test/oracle/instantclient_11_2:$LD_LIBRARY_PATH

如果python輸出字符串亂碼或報錯,在~/.bash_profile後添加

export LC_ALL='en_US.UTF-8'

編輯完成後,激活配置的文件

[[email protected]_191 ~]source /home/test/.bash_profile

然後可以查看剛剛配置的環境路徑是否正確

[[email protected]_191 ~]echo $LD_LIBRARY_PATH


三、其他

參考網址


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved