

- #Oracle 12 client for mac pkg mac os#
- #Oracle 12 client for mac pkg update#
- #Oracle 12 client for mac pkg full#
So it would seem '.' is forced into the dynamic load library path, even though the other locations were which python If I started python from a working directory of /usr/local/lib or $HOME/lib (or any directory that contained the instant client), then it did work. I really don't know why /usr/local/lib or $HOME/lib did not work, but I tired it many times, and even forced those into path settings. The above steps seemed to be a logical way to affect the cx_Oracle and still follow a somewhat normal install. Most of the solutions for issues on the Mac like this that I found involved updating the RPATH environment.


There did not seem to be any log or any information on "what it did not do".
#Oracle 12 client for mac pkg full#
I tired it with both symbolic links to the instant client libraries, and by copying the full libraries into those locations.Īgain, I never found specific info on what SIP was blocking. Just to be clear, the standard library search paths never worked for me on Mac ($HOME/lib and /usr/local/lib).
#Oracle 12 client for mac pkg update#
I'll update this post with the location when it is complete. I am also working on an installation guide for cx_Oracle which will cover these and other issues that people have had in the past. It would seem that this works differently on macOS. That is due to the way the Oracle instant client is linked and the fact that v6 now uses dynamic loading to load the Oracle Client libraries. That option has been removed in v6 because RPATH wasn't working on Linux. I also tried setting FORCE_RPATH=1 but on introspection it never updated the. PYTHONPATH is only for Python's use finding its own modules, and has nothing to do with finding binary dependencies like the instant client, so also unsurprising that it didn't help you.ĭid you look at the web page indicated in the error message? This link goes directly to the macOS section ( ) and is very simple to implement. pth and the site.py configuration options. I also tried setting PYTHONPATH and adding the Oracle client directory to sys.path using. LD_LIBRARY_PATH and DYLD_LIBRARY_PATH are ignored when SPI is enabled, as you indicated in a later part of your issue, so it is unsurprising that these didn't help you! Ok, so I tried a lot of environment variables.Įxport LD_LIBRARY_PATH=/usr/local/lib:/lib:$ORACLE_HOMEĮxport DYLD_LIBRARY_PATH=/usr/local/lib:/lib:$ORACLE_HOME I could very it was added by using the otool command: Install_name_tool -add_rpath ~/instantclient_12_1. Once it is built I then modified the rpath of the cx_Oracle.so library to include the Oracle instant client location: It is pretty simple, and seems to support the theory of SPI being an issue, and matches a lot of notes about discontinuing usage of the LD and DYLD paths.
#Oracle 12 client for mac pkg mac os#
So I did find a solution that did not require disabling SIP on Mac OS X. So there are lots of antidotal references to this being related to SIP (System Integrity Protection), though I could find no specific technical note from Apple that says exactly what is causing the above error (inability to find dynamic linked library at run time). File "build/bdist.macosx-10.12-intel/egg/cx_Oracle.py", line 7, in įile "build/bdist.macosx-10.12-intel/egg/cx_Oracle.py", line 6, in _bootstrap_Ĭx_Oracle.DatabaseError: DPI-1047: Oracle Client library cannot be loaded: dlopen(libclntsh.dylib, 1): image not found.
