macOS搭建Python的cx_Oracle開發(fā)環(huán)境的過程總結(jié)缘厢。
環(huán)境與版本镊掖,
OS: macOS High Sierra 10.13.6
Oracle Instant Client: Version 12.2.0.1.0 (64-bit) Updated 15-Jan-2018
安裝Oracle Instant Client仇哆,
Oracle網(wǎng)站的下載需要注冊一個(gè)賬戶恤溶,根據(jù)macOS版本選擇Oracle Instant Client柏腻,自行申請下載冯挎。
https://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
macOS版本 | Oracle Instant Client版本 |
---|---|
macOS High Sierra, Sierra and El Capitan | Instant Client 12.2 |
macOS El Capitan, Yosemite and Mavericks | Instant Client 12.1 |
macOS X Lion, Mountaint Lion and Mavericks | Instant Client 11.2 |
下載所需要的文件杀饵,
basic: instantclient-basic-macos.x64-12.2.0.1.0-2.zip
sqlplus: instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip
sdk: instantclient-sdk-macos.x64-12.2.0.1.0-2.zip
解壓包到一個(gè)文件夾里莽囤,如/usr/local/lib/Oracle/instantclient_12_2
,
unzip instantclient-basic-macos.x64-12.2.0.1.0-2.zip # 提供基本功能
unzip instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip # 提供sqlplus命令行
unzip instantclient-sdk-macos.x64-12.2.0.1.0-2.zip # 提供頭文件切距,cx_Oracle會依賴其中的oci.h
鏈接庫文件朽缎,
添加到$HOME/lib
或/usr/local/lib
的鏈接,以使應(yīng)用程序能夠找到庫谜悟。
ln -s /usr/local/lib/Oracle/instantclient_12_2/libclntsh.dylib.12.1 /usr/local/lib
如果您打算將可選的Oracle配置文件(如tnsnames.ora话肖,sqlnet.ora或oraaccess.xml)與Instant Client放在一起,則創(chuàng)建一個(gè)network/admin
子目錄(如果該子目錄不存在)葡幸。
mkdir -p /usr/local/lib/Oracle/instantclient_12_2/network/admin
增加環(huán)境變量最筒,
export PATH=/usr/local/lib/Oracle/instantclient_12_2:$PATH # sqlplus工具也可以使用了
安裝cx_Oracle,
pip install cx_Oracle
驗(yàn)證蔚叨,
>>> import cx_Oracle
>>> db = cx_Oracle.connect('hr', 'hrpwd', 'localhost:1521/XE')
>>> db1 = cx_Oracle.connect('hr/hrpwd@localhost:1521/XE')
>>> dsn_tns = cx_Oracle.makedsn('localhost', 1521, 'XE')
>>> print(dsn_tns)
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SID=XE)))
>>> db2 = cx_Oracle.connect('hr', 'hrpwd', dsn_tns)
參考文檔:
https://www.oracle.com/technetwork/topics/intel-macsoft-096467.html