注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

being23

写给未来的自己

 
 
 

日志

 
 
关于我

真正的坚定,就是找到力量去做自己喜欢的事情,并为之努力,这样才会觉得生活是幸福的。

网易考拉推荐

OSX 安装 cx-Oracle  

2016-02-02 00:28:48|  分类: work@oppo |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这里下载

  1. instantclient-basic-macos.x64-11.2.0.4.0.zip
  2. instantclient-sdk-macos.x64-11.2.0.4.0.zip

解压后得到文件夹instantclient_11_2,将其移到目录/opt/oracle

mv instantclient_11_2/ /opt/oracle
mv instantclient_11_2/sdk/ /opt/oracle/instantclient_11_2/

创建软连接

ln -s libclntsh.dylib.11.1 libclntsh.dylib
ln -s libocci.dylib.11.1 libocci.dylib

设置好环境变量

export ORACLE_HOME=/opt/oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export LIBRARY_PATH=$ORACLE_HOME
export NLS_LANG=SIMPLIFIED\ CHINESE_CHINA.AL32UTF8

接下来使用pip安装cx-Oracle

sudo pip install cx-Oracle

遇到问题distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation


说下上面的问题是怎么发现以及解决的。

pip无法安装,尝试通过源码安装,还是报上面的错。最后,看了setup.py,发现其中有根据环境变量寻找oracle的安装路径。加了一些输出重新执行,结果显示没有相应的环境变量。这才反应过来——pip安装的时候,使用的用户是没有对应目录的权限,于是在执行的时候加了sudo,问题是root用户是没有设置上述环境变量,难怪一直找不到。


设置好环境变量,安装成功。进入python命令行,import cx_Oracle又遇到了问题:Reason: image not found

Google到一个相关的问题,对此有一份蛮不错的解答见这里,大意是因为安全问题,环境变量DYLD_*失效,不太明白,解决方法是通过一个ruby脚本修复,具体如下

cd /opt/oracle/instantclient11_2
curl -O https://raw.githubusercontent.com/kubo/fix_oralib_osx/master/fix_oralib.rb
ruby fix_oralib.rb --absolute-path

最近使用go把之前那套cpp写的同步接口重写了,这里给出golang安装oracle库的步骤

  1. 安装第三方库go get github.com/mattn/go-oci8。通常都会失败,不过没关系,这一步就是把源码下载下来。
  2. 进入目录$GOPATH/src/github.com/mattn/go-oci8/,修改文件oci8.pc,设置库文件libdir和头文件路径includedir

    includedir=/opt/oracle/instantclient_11_2/sdk/include
    libdir=/opt/oracle/instantclient_11_2

    Name:
    oci8
    Description: Oracle Instant Client
    Version: 12.1
    Cflags: -I${includedir}
    Libs: -L${libdir} -lclntsh
  3. 在编译之前,需要安装工具pkg-config,我是通过homebrew安装的:brew install pkg-config。安装完成后,把工具所在目录添加到环境变量$PATH中:

    export $PATH=$PATH:/usr/local/Cellar/pkg-config/0.28/bin/

    还需要设置另外一个变量PKG_CONFIG_PATH

    export PKG_CONFIG_PATH=~/Workspace/mygo/src/github.com/mattn/go-oci8

    设置好后,执行go build即可。


参考资料

  1. install_cx_Oracle_on_elcapitan
  评论这张
 
阅读(63)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017