Update 11.11.2011, for ubuntu 11.10 oneiric oncelot:
- you will need version: cx_Oracle-5.0.4-11g-py27-1.x86_64.rpm
- if using 64bit and you installed oracle on 32 bit thus also installed libaio1:i386 the replace /lib/libaio.1.0.1 32bit with the corresponding version for 64bit or you’ll get:
```
import cx_Oracle
ImportError: libaio.so.1: wrong ELF class: ELFCLASS32
```
- if you try to use a newer version of cx\_Oracle you will get
```
import cx_Oracle
ImportError: /usr/lib/python2.7/cx_Oracle.so: undefined symbol: PyUnicodeUCS2_AsEncodedString
```
End update.
Short list:
- find python version
python -V
Python 2.6.2
- download appropriate rpm version: cx_Oracle-5.0.2-10g-py26-1.i386.rpm
- install rpm using alien (as root or using sudo)
alien -i cx_Oracle-5.0.2-10g-py26-1.i386.rpm
- fix location
cd /usr/lib/python2.6
ln -s site-packages/cx_Oracle.so
- test
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/phantom/oracle (path to instantclient install)
..$ python -c 'import cx_Oracle'
if you don’t do the export you will get a:
python -c 'import cx_Oracle'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: libclntsh.so.10.1: cannot open shared object file: No such file or directory
Comments:
Rick -
Your second line under the “fix” section appears wrong (bad syntax to create a symbolic link) but I’m not sure what it should be. Can you assist?
len -
Thanks, corrected.
Rajesh -
This worked, thanks
Bayo Opadeyi -
Thanks, I just setup cx_oracle on my 64-bit ubuntu 11.10
Rajesh -
This worked even with 12.04