Connecting to Oracle from Python on macOS Big Sur
After upgrading one of my machines to macOS Big Sur my Python scripts that were connected to an Oracle database broke. I was able to fix them as follows.
I use cx_Oracle to handle connections to the database. Within my oracle environment I installed cx_Oracle
python -m pip install cx_Oracle --upgrade
Previous versions of macOS worked with the Oracle Instant Client libraries 12.2. Newer versions are available. I was unable to connect using 12.2 or 18.1. I installed the 19.8 version from the Oracle Downloads Site. If you are only scripting from Python then the Basic Lite version is sufficient. I unzipped these files to ~/Oracle/
Previously I was able to use cx_oracle by exporting the LD_LIBRARY_PATH. Several online resources recommend this, e.g. at the command line run export LD_LIBRARY_PATH=”~/Oracle/instantclient_19_8/"
. Doing this on Big Sur led to a connection error DPI:1047.
Instead I was able to solve the connection error by starting each script with a call to cx_Oracle.init_oracle_client()
#!/usr/local/bin/python3
import cx_Oracle
cx_Oracle.init_oracle_client(lib_dir="/Users/your-name/Oracle/instantclient_19_8")