macOS搭建Python的cx_Oracle开发环境

macOS搭建Python的cx_Oracle开发环境的过程总结。

环境与版本

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网站的下载需要注册一个账户,根据macOS版本选择Oracle Instant Client,自行申请下载。

https://www.oracle.com/technetwork/topics/intel-macsoft-096467.html

macOS版本Oracle Instant Client版本
macOS High Sierra, Sierra and El CapitanInstant Client 12.2
macOS El Capitan, Yosemite and MavericksInstant Client 12.1
macOS X Lion, Mountaint Lion and MavericksInstant 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

解压包到一个文件夹里,如/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的链接,以使应用程序能够找到库。

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放在一起,则创建一个network/admin子目录(如果该子目录不存在)。

mkdir -p /usr/local/lib/Oracle/instantclient_12_2/network/admin

增加环境变量

export PATH=/usr/local/lib/Oracle/instantclient_12_2:$PATH # sqlplus工具也可以使用了

安装cx_Oracle

pip install cx_Oracle

验证

>>> 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

https://oracle.github.io/odpi/doc/installation.html#macos

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值