Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jzp113/fbaa2e8f3d3d4aec001cfaa687e8efd2 to your computer and use it in GitHub Desktop.
Save jzp113/fbaa2e8f3d3d4aec001cfaa687e8efd2 to your computer and use it in GitHub Desktop.

This page is based on Install node-oracledb on OS X 10.11 El Capitan and modified for Python.

Install C compiler

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.

Install PyPI

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.

Install Oracle Instant Client Packages

Download Oracle Instant Client Packages

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)

Install Oracle Instant Client Packages via Homebrew

To install Oracle Instant Client Basic Lite via Homebrew

  • Download two instant client packages: Basic Lite and SDK and put them in /Library/Caches/Homebrew (if the environment variable HOMEBREW_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 and SDK and put them in /Library/Caches/Homebrew (if the environment variable HOMEBREW_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
    

Install Oracle Instant Client Manually

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

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment