先說一下我運到的坑:工做環境win64,數據存在Oracle數據庫中,並不清楚instantclient是多少位。cx_Oracle 64,致使數據庫鏈接不上報錯,須要從新下載/安裝等。下面簡單總結一下個人環境部署。我以前鏈接過oracle18.5,如今客戶是oracle11.2,須要從新安裝配置。我電腦是Python37,可是cx_Oracle的版本須要Python36,那就在安裝python36.html
安裝配置時,必須把握一個點,就是版本一致!包括:系統版本,python版本、依賴包版本。python
【筆記】linux
2,安裝cx_Oracle https://blog.csdn.net/wangshuang1631/article/details/71057054
2.1 $uname -a //查看系統是不是 Linux x86-64
2.2 下載如下兩個文件,兩個文件放在同一目錄下:basic和sdk。http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
instantclient-basic-linux.x64-11.2.0.3.0.zip
instantclient-sdk-linux.x64-11.2.0.3.0.zip
2.3 解壓到instantclient_11_2目錄下,sql
unzip instantclient-basic-linux.x64-11.2.0.3.0.zip
unzip instantclient-sdk-linux.x64-11.2.0.3.0.zip
2.4 設置環境變量
root用戶:
# vim /etc/profile //修改
export ORACLE_HOME=/home/downloads/instantclient_11_2/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
# cat /etc/profile //查看
# source /etc/profile //使文件生效
普通用戶:
修改.bashrc文件來設置環境變量。
經過指令:vi ~/.bashrc,添加以下兩行內容:數據庫
ORACLE_HOME=/你的目錄/instantclient_11_2/
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOMEvim
修改完成以後,使你的修改生效,使用指令 source ~/.bashrc
2.5 創建一個鏈接libclntsh.so
cd /你的目錄/instantclient_11_2/
ln -s libclntsh.so.11.1 libclntsh.so
2.6 安裝cx_Oracle 下載cx_Oracle-5.2.1.tar.gz
tar -xvf cx_Oracle-5.2.1.tar.gz
cd cx_Oracle-5.2.1
python setup.py install
2.7 驗證 使用python指令驗證:windows
import cx_Oraclebash
查看要鏈接的oracle數據庫版本:執行:select * from v$version; 結果:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production服務器
好比我要鏈接11.2版本,以前也練過18.5版本oracle
Python3.6:cmd查看 python -V ,系統:windows64位或者32位。
注意事項:須要根據現場系統版本位數、數據庫的服務端和客戶端的版本位數肯定。如oracle的server端是32位,則客戶端instantclient須要是32位, anaconda對應win32版本。
固然,你64位的操做系統也是能夠安裝32位的開發環境。反之則不行!切記!
oracle客戶端的版本,cx_Oracle的版本,要與Python版本和位數對應:
數據庫版本:需要確保數據庫的客戶端版本不低於服務端的版本,若是鏈接oracle數據,可經過select * from v$version查看版本信息或者經過plsql(navicat)配置查看目錄instactcliet的目錄所在,肯定使用的oracle客戶端的版本,而後肯定下載cx_Oracle的版本。
客戶端及anaconda位數:與服務端保持一致,即服務端是32位,版本11g,則客戶端選擇11g,32位。
好比服務端版本:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 32bit Production
選擇對應
Python版本:Anaconda3-5.2.0-Windows-x86,python3.6;
cx_Oracle的版本:cx_Oracle-6.2-cp36-cp36m-win32
oracle客戶端的版本:instantclient-basic-win32-11.2.0.4.0;
如果: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
oracle客戶端的版本:instantclient-basic-windows.x64-11.2.0.4.0.zip。下載地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
這裏還須要注意:
cx_Oracle和python版本對應,都是3.6;
cx_Oracle和instantclient版本對應,都是11g
(1) 解壓instantclient-basic-windows.x64-11.2.0.4.0.zip到你的目錄,好比個人是,D盤根下。
(2) 進入安裝目錄instantclient_11_2,修改network/admin/tnsnames.ora 文件,若沒有,就新建兩級文件夾 和文件tnsnames.ora 。
(3)寫文件。tnsnames.ora 文件內容
cs_de_o= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.145.62)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = CSZHANG01) ) )
HOST = 192.168.145.62 --服務器ip SERVICE_NAME=CSZHANG01 --服務器的實例名 cs_de_o --給這個tns的別名吧(反正是你本身看,你能區別出來就行)
(4)配置環境變量
安裝 Anaconda:首先安裝Anaconda,而後安裝依賴包,這裏須要注意一下,有可能cx_Oracle依賴的包和作EDA分析依賴的其餘包有衝突,這裏建議先安裝其餘依賴包,最後安裝cx_Oracle。
安裝完畢後,須把oracle客戶端instantclient中的三個文件oci.dll,oraocci11.dll和oraocei11.dll至anaconda根目錄。
手動安裝:把下載的文件解壓,複製oci,oraocci11,oraociei11的3個DLL粘貼到你的PY目錄的Lib/site-packages文件夾下面。
(2)下載plsql 工具(解壓)
(3)配置環境變量
TNS_ADMIN D:\PL.SQL.Developer\instantclient_11_2\network\admin -----(instantclient_12_1的路徑,我是將instantclient 解壓在plsql中) NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK ----(設置語言)
(4)啓動plsql,由於尚未配置好,因此你就cancel ,
進入到plsql,在上方的選項欄中 tools-->connection 設置 oracle home 路徑 和 oci library 路徑
而後apply,重啓plsql,就會發現,database 就會顯示 cs_de_o, 而後輸入你的用戶,密碼,就能夠登陸了