它停止了工作.我之前在目录中找不到相关文件.由于System Integrity Protection,我再次完成整个过程,并在usr / local / lib / share / oracle / installclient_11_2中安装.
但现在我运行程序.它抛出此错误消息:
ImportError: dlopen(/Library/Python/2.7/site-packages/cx_Oracle.so,2): Library not loaded: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1 Referenced from: /Library/Python/2.7/site-packages/cx_Oracle.so Reason: image not found
我在网上尝试了很多解决方案,比如https://gist.github.com/rmoff/5a70862f27d2284e9541,http://kevindalias.com/2014/03/26/how-to-set-up-cx_oracle-for-python-on-mac-os-x-10-89/
我仍然没有运气:(
欢迎任何建议.提前致谢!
================================================== ========================
更新:
在线发现this post,在El Capitan上神奇地工作.删除旧安装,按照此步骤逐步开始.
您可以修改cx_Oracle.so库以使用Oracle客户端库的实际路径,而不是不再有效的搜索路径;确保ORACLE_HOME仍然设置为指向您的实际即时客户端位置,并且还要注意应使用ImportError报告的确切路径 – 3071542110值可能会因您安装的Instant Client的版本/版本而异:
export ORACLE_HOME=/usr/local/lib/share/oracle/installclient_11_2 install_name_tool -change \ /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1 \ $ORACLE_HOME/libclntsh.dylib.11.1 \ /Library/Python/2.7/site-packages/cx_Oracle.so
…但是那个库找不到另一个Oracle了:
ImportError: dlopen(/Library/Python/2.7/site-packages/cx_Oracle.so,2): Library not loaded: /ade/b/3071542110/oracle/ldap/lib/libnnz11.dylib Referenced from: /usr/local/lib/share/oracle/installclient_11_2/libclntsh.dylib.11.1 Reason: image not found
所以你也需要改变那个库,你可能不太习惯:
install_name_tool -change \ /ade/b/3071542110/oracle/ldap/lib/libnnz11.dylib \ $ORACLE_HOME/libnnz11.dylib \ $ORACLE_HOME/libclntsh.dylib.11.1
根据确切的客户端版本/构建,您可能需要在运行该命令之前使文件可写,具有:
chmod 755 $ORACLE_HOME/libclntsh.dylib.11.1
通过这些更改,我可以在El Capitan上运行cx_Oracle测试.
更多关于install_name_change here.
看起来12c即时客户端的构建方式可以避免这个问题,所以升级到它就比在11g文件中进行黑客攻击更简单.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。