python連接oracle數據庫
需要oracle客戶端的版本,cx_Oracle的版本,要與Python版本和位數對應,都是32位或者64位。
操作系統:64位
Python版本:Python3.5.0 64位;
cx_Oracle的版本:cx_Oracle-5.2.1-11c.win-amd64-py3.5
oracle客戶端的版本:instantclient-basic-win-x86-64-11.2.0.1.0;
需注意的點:
版本位數對應,都是64位;
cx_Oracle和python版本對應,都是3.5;
cx_Oracle和instantclient版本對應,都是11;
cx_oracle和instantclient的版本不必和Oracle數據庫版本一致
Windows:
1.pip install cx-Oracle==5.2.1
2.下載並安裝oracle-instantclient11.2.x 后解壓到指定文件夾,如:D:\oracle\instantclient_11_2
3.將instantclient的oci.dll文件放到$Python_Home\Lib\site-packages 目錄下,不知道哪幾個文件,就把整個解壓的文件都復制過去即可
Mac:
1.pip install cx_Oracle
2.下載並安裝instantclient-basic-macos.x64-11.2.x
下載連接 https://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
我下載的為instantclient-basic-macos.x64-11.2.0.4.0.zip
將程序包解壓縮到應用程序可訪問的單個目錄中。例如:
mkdir -p /opt/oracle
unzip instantclient-basic-macos.x64-12.2.0.1.0.zip
添加鏈接$HOME/lib或/usr/local/lib使應用程序能夠找到庫。例如:
mkdir ~/lib
ln -s /opt/oracle/instantclient_12_2/libclntsh.dylib.12.1 ~/lib/
或者,復制所需的OCI庫。例如:
mkdir ~/lib
cp /opt/oracle/instantclient_12_2/{libclntsh.dylib.12.1,libclntshcore.dylib.12.1,libons.dylib,libnnz12.dylib,libociei.dylib} ~/lib/
對於Instant Client 11.2,必須復制OCI庫。例如:
mkdir ~/lib
cp /opt/oracle/instantclient_11_2/{libclntsh.dylib.11.1,libnnz11.dylib,libociei.dylib} ~/lib/
如果您打算同定位可選的Oracle配置文件,如tnsnames.ora,sqlnet.ora或oraaccess.xml與即時客戶端,然后創建一個network/admin子目錄。例如:
mkdir -p /opt/oracle/instantclient_12_2/network/admin
這是與此Instant Client鏈接的應用程序的默認Oracle配置目錄