MacOS Python 操作 Oracle——安装cx_Oracle模块

阅读更多

1. 准备

a) 确保已经从Xcode安装了命令行工具

b) 到 Oracle  以下载两个文件

instantclient-basic-1.0.xx-macos-x64.zip

instantclient-sdk-1.0.xx-macos-x64.zip

c) 创建一个目录,我这里是/opt/oracle

d) 将instantclient-basic-1.0.xx-macos-x64.zip解压到以上文件夹,得到/opt/oracle/instantclient_10_2

e) 将instantclient-sdk-1.0.xx-macos-x64.zip里面的sdk目录解压到上面的文件夹,为/opt/oracle/instantclient_10_2/sdk

f) 到sdk目录下把ottclasses.zip解压出来,它会产生一个oracle目录

g) 回到/opt/oracle/instantclient_10_2复制类库文件到当前目录

cp ./sdk/* .

cp ./sdk/includ .

h) 类库OK,设置几个环境变量,编辑/etc/profile

ORACLE_HOME = /opt/oracle/instantclient_10_2

DYLD_LIBRARY_PATH = $ORACLE_HOME

LD_LIBRARY_PATH = $ORACLE_HOME

i) 链接两个文件:

ln -s libclntsh.dylib.10.1 libclntsh.dylib

ln -s libocci.dylib.10.1 libocci.dylib

现在重启机器或者source /etc/profile

2. 安装cx_oracle

下载 cx_Oracle

安装cx_Oracle时我是切换到root完成的安装,否则出现没有权限,有些资料说不需要,反正我没有成功。执行下面命令安装,

 

python setup.py build

python setup.py install

 

安装完了之后测试一下cx_Oracle

$ python

>>> import cx_Oracle

可能出错误,找不到符号 _OCIAttrGet,貌似说是MacOS上的Python是64位的而cx_Oracle是32位的,

在运行python命令之前先设置一个值,

$ export VERSIONER_PYTHON_PREFER_32_BIT=Yes

 

$ python

>>> import cx_Oracle

应该不再报错了。

 

3. IDE设置

主要是想办法填加以上几个环境变量

 

ORACLE_HOME = /opt/oracle/instantclient_10_2

DYLD_LIBRARY_PATH = $ORACLE_HOME

LD_LIBRARY_PATH = $ORACLE_HOME

VERSIONER_PYTHON_PREFER_32_BIT=Yes

 

TextMate可以在设置的shell variables里设置,

aptana 里PyDev->Interpreter Python的Environment里填加

你可能感兴趣的:(python,oracle,macos)