如何在El Capitan上安装cx_Oracle

前端之家收集整理的这篇文章主要介绍了如何在El Capitan上安装cx_Oracle前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
据我了解,有一些与SIP有关的变化使得安装这一点变得困难.

这些页面有安装的背景和建议. http://sourceforge.net/p/cx-oracle/mailman/message/34534872/,http://stefanoapostolico.com/2015/10/08/install_cx_oracle_with_sip_enabled.html

把所有这些放在一起,这是我最好的把它安装到我的virtualenv,但唉,仍然没有好处.

我得到的错误是:

  1. Traceback (most recent call last):
  2. File "<string>",line 1,in <module>
  3. 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
  4. Referenced from: /Users/me/sx_direct_env/lib/python2.7/site-packages/cx_Oracle.so
  5. Reason: image not found

以下是我的所有安装步骤:

  1. $cd /Users/me/sx_direct_env/lib/python2.7
  2. $mkdir oracle
  3. $cd oracle
  4. $export ORACLE_HOME=$PWD
  5. $export DYLD_LIBRARY_PATH=$ORACLE_HOME
  6. $export LD_LIBRARY_PATH=$ORACLE_HOME
  7. $export PATH=$PATH:$ORACLE_HOME
  8. $unzip ~/Downloads/instantclient-basic-macos.x64-11.2.0.4.0.zip
  9. $unzip ~/Downloads/instantclient-sdk-macos.x64-11.2.0.4.0.zip
  10. $mv instantclient_11_2/* .
  11. $rmdir instantclient_11_2
  12. $curl -O https://raw.githubusercontent.com/kubo/fix_oralib_osx/master/fix_oralib.rb
  13. $ruby -a fix_oralib.rb
  14. adrci:
  15. add rpath: @loader_path
  16. change install name
  17. from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
  18. to: @rpath/libclntsh.dylib.11.1
  19. change install name
  20. from: /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
  21. to: @rpath/libnnz11.dylib
  22.  
  23. genezi:
  24. add rpath: @loader_path
  25. change install name
  26. from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
  27. to: @rpath/libclntsh.dylib.11.1
  28.  
  29. libclntsh.dylib.11.1:
  30. add rpath: @loader_path
  31. change identification name
  32. from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
  33. to: @rpath/libclntsh.dylib.11.1
  34. change install name
  35. from: /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
  36. to: @rpath/libnnz11.dylib
  37.  
  38. libnnz11.dylib:
  39. change identification name
  40. from: /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
  41. to: @rpath/libnnz11.dylib
  42.  
  43. libocci.dylib.11.1:
  44. change identification name
  45. from: /ade/b/3071542110/oracle/rdbms/lib/libocci.dylib.11.1
  46. to: @rpath/libocci.dylib.11.1
  47.  
  48. libociei.dylib:
  49. add rpath: @loader_path
  50. change install name
  51. from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
  52. to: @rpath/libclntsh.dylib.11.1
  53.  
  54. libocijdbc11.dylib:
  55. add rpath: @loader_path
  56. change install name
  57. from: /ade/b/2475221476/oracle/rdbms/lib/libclntsh.dylib.11.1
  58. to: @rpath/libclntsh.dylib.11.1
  59. change install name
  60. from: /ade/b/2475221476/oracle/ldap/lib/libnnz11.dylib
  61. to: @rpath/libnnz11.dylib
  62.  
  63. uidrvci:
  64. add rpath: @loader_path
  65. change install name
  66. from: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1
  67. to: @rpath/libclntsh.dylib.11.1
  68. change install name
  69. from: /ade/dosulliv_ldapmac/oracle/ldap/lib/libnnz11.dylib
  70. to: @rpath/libnnz11.dylib
  71.  
  72. $pip install cx_oracle
  73. Collecting cx-oracle
  74. Installing collected packages: cx-oracle
  75. Successfully installed cx-oracle-5.2
  76.  
  77. $python -c "import cx_Oracle"
  78. Traceback (most recent call last):
  79. File "<string>",2): Library not loaded: /b/227/rdbms/lib/libclntsh.dylib.10.1
  80. Referenced from: /Users/me/sx_direct_env/lib/python2.7/site-packages/cx_Oracle.so
  81. Reason: image not found
尝试使用Oracle instantclient 12.1尝试安装cx_Oracle时,我尝试了上述操作并出现以下错误
  1. [535]: /opt/instantclient_12_1 $python -c "import cx_Oracle"
  2. Traceback (most recent call last):
  3. File "<string>",in <module>
  4. ImportError: dlopen(/Library/Python/2.7/site-packages/cx_Oracle.so,2):
  5. Library not loaded: @rpath/libclntsh.dylib.12.1
  6. Referenced from: /Library/Python/2.7/site-packages/cx_Oracle.so
  7. Reason: image not found

注意错误中的@rpath – 事实证明,当在El Capitan上构建cx_Oracle库(对于instantclient 12.1)时,gcc编译器需要设置-rpath标志以知道在哪里找到上述动态链接库(*. dylib).默认情况下,在instantclient 12.1上,pip不会为您执行此操作.

  1. # Set -rpath option before installing...this will use $ORACLE_HOME during compilation
  2. export FORCE_RPATH=TRUE
  3. pip install cx_Oracle
  4. # And verify cx_Oracle was correctly installed
  5. python -c "import cx_Oracle"
  6. # If this line fails install cx_Oracle with:
  7. # pip install --no-cache-dir --allow-external --allow-unverified cx_oracle

python -c“import cx_Oracle”应该报告没有错误.

有关完整的安装指南(包括即时客户端下载和配置),请查看我在http://thelaziestprogrammer.com/sharrington/databases/oracle/install-cx_oracle-mac的帖子了解详细信息.

猜你在找的Oracle相关文章