Ubuntu下利用pip安装cx_Oracle的python的包的时候总是出问题,下面介绍一种解决方法,亲测可行。

1. 第一步

$ sudo apt install build-essential unzip python-dev libaio-dev

2. 第二步
下载两个安装包,地址为:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
第一个是 Instant Client Package - Basic,第二个是Instant Client Package - SDK
注意要下载适合自己电脑的版本,32还是64位,并且建议下载version11,而不是version12,因为cx_Oracle目前似乎不支持version12。
两个安装包解压后(解压到一起),得到一个文件夹,我的是 instantclient_11_2。可以利用mv命令移动到你想要安装的目录,我这里移动到了/usr/local下边:

$ sudo mv instantclient_11_2 /usr/local

打开/etc/profile或者~/.bashrc,添加环境变量ORACLE_HOME,我这里加在了~/.bashrc里

$ sudo vi ~/.bashrc

打开后,在~/.bashrc里加入以下两行

export ORACLE_HOME="usr/local/instantclient_11_2"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME

最后,别忘了source一下:

$ source ~/.bsahrc

3. 第三步
然后,可以看到instantclient_11_2文件夹里有很多.so文件,下面建立一个指向so文件的symlink

$ cd $ORACLE_HOME
$ ln -s libclntsh.so.11.1   libclntsh.so  #注意,版本不一样,可能后边.so的文件名也不一样,根据自己的文件名修改

4. 第四步
编辑 /etc/ld.so.conf.d/oracle.conf文件

$ sudo vi  /etc/ld.so.conf.d/oracle.conf  #注意,这个文件在此之前是不存在的

打开文件后,加入所有的instantclient_11_2文件夹里.so文件的路径,我的是这样的:
/usr/local/instantclient_11_2/libnnz11.so
/usr/local/instantclient_11_2/libociei.so
/usr/local/instantclient_11_2/libocijdbc11.so
/usr/local/instantclient_11_2/libclntsh.so
/usr/local/instantclient_11_2/libclntsh.so.11.1
/usr/local/instantclient_11_2/libocci.so.11.1
保存,退出后输入以下命令更新ldpath:

$ sudo ldconfig

5. 第五步
最后就能够利用pip install cx_Oracle命令安装这一模块了!

Logo

更多推荐