【CentOS】Python + cx_Oracle 配置

服务器环境


系统:Red Hat Enterprise Linux Server release 6.7 (Santiago)(64位)
数据库:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
Python:Python 2.6.6

Oracle Instant Client安装


下载地址:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
选择合适的版本下载 我选择的是Instant Client for Linux x86-64 下的 oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

0.png

注意:此处只需要下载basic版本就可以了,也可以下载zip文件自行安装。下载的时候需要oracle的账户,没有的话可以注册一个

文件迁移:因为我下载到了本地,所以需要通过sshclient将文件传输到服务器。在服务器上可以使用wget 命令下载,参见 《Python + Redis 模块配置》

安装:找到服务器中文件的位置,执行sudo rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

1.png

我的安装路径为 /usr/lib/oracle/12.1/client64/
提示:安装路径查询方法rpm -ql 包名注意这里的是不包括.rpm后缀的软件包的名称

环境变量: 通过vi /etc/profile 指令编辑 系统文件,添加环境变量

2.png
在文件末尾添加
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib;
export LD_LIBRARY_PATH
3.png
添加完成后执行:source /etc/profile

注意:当切换为不同用户使用系统是,可能需要为不同用户配置环境变量,最好直接配置root的环境变量

Python cx_Oracle 模块安装


下载地址:https://pypi.python.org/pypi根据自己的操作系统,数据库以及python版本,我选择的是

4.jpg

文件迁移:同上

安装: 将压缩包解压到相应的文件夹,tar -xvfz cx_Oracle-5.2.tar.gz

提示:tar -cvfz archive.tar.gz dir1 ####创建一个gzip格式的压缩包#### tar -xvfz archive.tar.gz ####解压一个gzip格式的压缩包####

配置Python:安装完成后,进入文件夹cd cx_Oracle-5.2,执行python setup.py build install进行模块安装

注意:如果出现gcc的编译错误是因为系统没有安装gcc,执行yum install gcc 就能自动安装。

测试


进入Python环境,执行import cx_Oracle,没有报错则配置成功

5.png

如果出现:No such file or directory 错误

6.png
检查oracle client环境变量是否配置正确,client与cx_Oracle是否正确安装。

小结


我的碰到的问题是 No such file or directory 错误 ,出现原因是因为环境变量没有配置

推荐阅读更多精彩内容