This document has been obsolete since Oracle Instant Client 12.1 for OS X was released. The 12.1 client supports OS X 10.11 El Capitan, 10.10 Yosemite, and 10.9 Mavericks and can connect to Oracle Database 10.2 or later.
Look at this document to install 12.1.
You should add the environment variable FORCE_RPATH
to link with -rpath
on compilation.
(You have no need to set the environment variable at runtime.)
The followings are obsolete.
This page is based on Install node-oracledb on OS X 10.11 El Capitan and modified for Python.
You need to install the command line developer tools or the Xcode. (The latter includes the former.)
Run cc --version
in a terminal to check whether they are installed.
If the cc version is printed, the tools are installed.
If this dialog is displayed, click its Install button to install the tools. You have no need to install the Xcode to compile cx_Oracle. It requires command line tools, not an IDE such as the Xcode.
If Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
is printed, you need to run
sudo cc --version
, enter your password, look at the license
and type agree
.
If you use bundled Python, run sudo easy_install pip
to install pip
command.
Otherwise brew install python
to install python and pip
via Homebrew.
Download the following packages from Oracle Technology Network
- Instant Client Package - Basic or Basic Lite
- Instant Client Package - SDK
- Instant Client Package - SQL*Plus (optionally)
To install Oracle Instant Client Basic Lite
via Homebrew
-
Download two instant client packages:
Basic Lite
andSDK
and put them in/Library/Caches/Homebrew
(if the environment variableHOMEBREW_CACHE
is not set and$HOME/Library/Caches/Homebrew
doesn't exist.) -
Run the followining commands:
brew install InstantClientTap/instantclient/instantclient-basiclite brew install InstantClientTap/instantclient/instantclient-sdk
-
Add the library directory to
PATH
to tell the instant client location while performing the following installation steps.export PATH=$(brew --prefix)/lib:$PATH
To install Oracle Instant Client Basic
via Homebrew
-
Download three instant client packages:
Basic
,Basic Lite
andSDK
and put them in/Library/Caches/Homebrew
(if the environment variableHOMEBREW_CACHE
is not set and$HOME/Library/Caches/Homebrew
doesn't exist.) -
Run the followining commands:
brew install InstantClientTap/instantclient/instantclient-basic brew install InstantClientTap/instantclient/instantclient-sdk
-
Add the library directory to
PATH
to tell the instant client location while performing the following installation steps.export PATH=$(brew --prefix)/lib:$PATH
If you don't use Homebrew, do the following:
Unzip the packages as follows:
mkdir /opt
mkdir /opt/oracle
cd /opt/oracle
Copy downloaded files to /opt/oracle before running the following commands.
unzip instantclient-basic-macos.x64-11.2.0.4.0.zip
unzip instantclient-sdk-macos.x64-11.2.0.4.0.zip
unzip instantclient-sqlplus-macos.x64-11.2.0.4.0.zip
Make a symbolic link to link the library.
cd /opt/oracle/instantclient11_2
ln -s libclntsh.dylib.11.1 libclntsh.dylib
Fix the library install and identification names using fix_oralib to make them work
without DYLD_LIBRARY_PATH
.
cd /opt/oracle/instantclient11_2
curl -O https://raw.githubusercontent.com/kubo/fix_oralib_osx/master/fix_oralib.rb
ruby fix_oralib.rb --absolute-path
Add the library directory to PATH
to tell the instant client location while performing the following installation steps.
export PATH=/opt/oracle/instantclient11_2:$PATH
Install cx_Oracle from the PyPI:
pip install cx_Oracle
If you are installing with sudo, you may need to use sudo -E to preserve the environment variable values.
Anyone who has issues with installing via Homebrew: make sure you place the part
$(brew --prefix)/lib
at the beginning of yourPATH
. Seems to make a difference that I don't understand.