Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save edersonbadeca/b016d93aefa7415e03f7b23e8698048f to your computer and use it in GitHub Desktop.
Save edersonbadeca/b016d93aefa7415e03f7b23e8698048f to your computer and use it in GitHub Desktop.

Revisions

  1. @thom-nic thom-nic created this gist Jul 16, 2013.
    71 changes: 71 additions & 0 deletions cx_oracle_instructions.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,71 @@
    # Installing cx_Oracle for Python/ Mac OSX

    Portions taken from http://www.cs.utexas.edu/~mitra/csSpring2011/cs327/cx_mac.html (in case that link ever dies.)

    Assume you've got [homebrew](http://mxcl.github.com/homebrew/) installed.

    Download the following files from [Oracle](http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html)

    * [instantclient-basic-$VERSION-macosx-x64.zip](http://download.oracle.com/otn/mac/instantclient/11203/instantclient-basic-macos.x64-11.2.0.3.0.zip)
    * [instantclient-sdk-$VERSION-macosx-x64.zip](http://download.oracle.com/otn/mac/instantclient/11203/instantclient-basiclite-macos.x64-11.2.0.3.0.zip)

    Create a directory `/usr/lib/share/oracle`

    export ORACLE_HOME=/usr/lib/share/oracle
    export VERSION=11.2.0.3.0
    export ARCH=x86_64

    mkdir -p $ORACLE_HOME


    Unpack both files to that directory:

    cd $ORACLE_HOME
    tar -xzf instantclient-basic-$VERSION-macosx-x64.zip
    tar -xzf instantclient-sdk-$VERSION-macosx-x64.zip

    ln -s libclntsh.dylib.11.2 libclntsh.dylib
    ln -s libocci.dylib.11.2 libocci.dylib

    export DYLD_LIBRARY_PATH=$ORACLE_HOME
    export LD_LIBRARY_PATH=$ORACLE_HOME


    (Note I did not have to do anything with `ottclasses.zip` as suggested in the original utexas instructions.)


    ## If you're using Pip:

    Last step is to simply run `pip`, you might have to add an arch flag:

    env ARCHFLAGS="-arch $ARCH" pip install cx_Oracle


    ## If you're building from source:

    Download cx_Oracle-version.tar.gz [from Sourceforge](http://cx-oracle.sourceforge.net/)


    export CX_ORA_VERSION=5.1.2
    tar -xzf cx_Oracle-$CX_ORA_VERSION.tar.gz
    cd cx_Oracle-$CX_ORA_VERSION

    env ARCHFLAGS="-arch $ARCH" python setup.py build
    sudo python setup.py install


    ## Notes

    Some folks have recommended compiling for 32-bit (i386) instead, although I'm not sure why. 64 bit seems to work for me so YMMV.

    Basically:

    # compile cx_Oracle for 32-bit (requires downloading 32-bit instantclient sources)
    ARCHFLAGS="-arch i386" pip install cx_Oracle

    # then make your virtualenv python 32-bit only:
    virtualenv .
    mv bin/python python.fat
    lipo python.fat -remove x86_64 -output bin/python

    See: http://stackoverflow.com/questions/8169946/cant-get-cx-oracle-to-work-with-python-version-2-7-mac-os-10-7-2-lion-mis/8452731#8452731