【发布时间】:2016-01-20 11:18:50
【问题描述】:
据我了解,与 SIP 相关的一些变化使得安装变得困难。
这些页面有安装的背景和建议。 http://sourceforge.net/p/cx-oracle/mailman/message/34534872/, http://stefanoapostolico.com/2015/10/08/install_cx_oracle_with_sip_enabled.html
把所有这些放在一起,这是我最好的将它安装到我的 virtualenv 的机会,但是唉,仍然没有好处。
我得到的错误是:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: dlopen(/Users/me/sx_direct_env/lib/python2.7/site-packages/cx_Oracle.so, 2): Library not loaded: /b/227/rdbms/lib/libclntsh.dylib.10.1
Referenced from: /Users/me/sx_direct_env/lib/python2.7/site-packages/cx_Oracle.so
Reason: image not found
以下是我的所有安装步骤:
$ cd /Users/me/sx_direct_env/lib/python2.7
$ mkdir oracle
$ cd oracle
$ export ORACLE_HOME=$PWD
$ export DYLD_LIBRARY_PATH=$ORACLE_HOME
$ export LD_LIBRARY_PATH=$ORACLE_HOME
$ export PATH=$PATH:$ORACLE_HOME
$ unzip ~/Downloads/instantclient-basic-macos.x64-11.2.0.4.0.zip
$ unzip ~/Downloads/instantclient-sdk-macos.x64-11.2.0.4.0.zip
$ mv instantclient_11_2/* .
$ rmdir instantclient_11_2
$ curl -O https://raw.githubusercontent.com/kubo/fix_oralib_osx/master/fix_oralib.rb
$ ruby -a fix_oralib.rb
adrci:
add rpath: @loader_path
change install name
from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
to: @rpath/libclntsh.dylib.11.1
change install name
from: /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
to: @rpath/libnnz11.dylib
genezi:
add rpath: @loader_path
change install name
from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
to: @rpath/libclntsh.dylib.11.1
libclntsh.dylib.11.1:
add rpath: @loader_path
change identification name
from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
to: @rpath/libclntsh.dylib.11.1
change install name
from: /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
to: @rpath/libnnz11.dylib
libnnz11.dylib:
change identification name
from: /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
to: @rpath/libnnz11.dylib
libocci.dylib.11.1:
change identification name
from: /ade/b/3071542110/oracle/rdbms/lib/libocci.dylib.11.1
to: @rpath/libocci.dylib.11.1
libociei.dylib:
add rpath: @loader_path
change install name
from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
to: @rpath/libclntsh.dylib.11.1
libocijdbc11.dylib:
add rpath: @loader_path
change install name
from: /ade/b/2475221476/oracle/rdbms/lib/libclntsh.dylib.11.1
to: @rpath/libclntsh.dylib.11.1
change install name
from: /ade/b/2475221476/oracle/ldap/lib/libnnz11.dylib
to: @rpath/libnnz11.dylib
uidrvci:
add rpath: @loader_path
change install name
from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
to: @rpath/libclntsh.dylib.11.1
change install name
from: /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
to: @rpath/libnnz11.dylib
$ pip install cx_oracle
Collecting cx-oracle
Installing collected packages: cx-oracle
Successfully installed cx-oracle-5.2
$ python -c "import cx_Oracle"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: dlopen(/Users/me/sx_direct_env/lib/python2.7/site-packages/cx_Oracle.so, 2): Library not loaded: /b/227/rdbms/lib/libclntsh.dylib.10.1
Referenced from: /Users/me/sx_direct_env/lib/python2.7/site-packages/cx_Oracle.so
Reason: image not found
【问题讨论】:
-
嗨,格雷格,但您是否运行过“cxOracleSIP.sh”?因为您面临的是 OSX 安全问题,而不是 Oracle 客户端问题。问候
-
谢谢。我相信 fix_oralib.rb 也可以进行安全修复。我正在研究的一个想法是 pip 没有安装最新版本。
-
如果您使用直接的 Instant Client 12.1 库,应该没有 SIP 问题。只需在安装 cx_Oracle 之前设置环境变量 FORCE_RPATH=1。
-
另外,LD_LIBRARY_PATH 是 Linux 的东西,由于 SIP 问题,没有使用 DY_LIBRARY_PATH。所以不需要设置这些变量。
标签: python oracle macos cx-oracle osx-elcapitan