python 安装cx_Oracle详细过程

最近安装python 的Oracle包,网上搜了一大堆,好多都没用,只好自己总结下整个安装过程吧

首先给大家推荐一个ubuntu官网上安装cx_Oracle网址:https://help.ubuntu.com/community/Oracle%20Instant%20Client

如果你的系统是ubuntu的话,按照上面说的步骤来就是,全部结束之后安装一个cx_Oracle-5.1.2.tar.gz文件就好了

如果你的系统是其他的,也可以按照上面说的来,只不过不同linux系统命令不一样罢了,步骤都一样,我装过一个centos 的,也成功了

下面是安装详细步骤,一步一步来,一般不会出错的

第一步:

按照提示,下载对应自己系统的rpm包,一般没有特殊要求下载其中三个包就可以了,分别是basic、devel、sqlplus

比如我的系统是64位,对应下载

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm 这三个就可以

第二步:

安装上面给的三个包,首先检查是否安装了alien命令,如果没有执行命令sudo apt-get install alien即可

然后分别执行:

alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
alien -i oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

第三步:

检查是否安装sqlplus,64位对应sqlplus64,终端执行即可检测出来

如果提示没有sqlplus命令,首先安装一个包libaio1, 安装命令

sudo apt-get install libaio1

然后就是配置环境变量了,详细请看上面网址提供,以后把所有要执行命令贴出来,全部复制粘贴就可以了

export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/:$LD_LIBRARY_PATH

sudo vi /etc/ld.so.conf.d/oracle.conf

打开文件以后,把下面(/usr/lib/oracle/12.1/client64/lib/)贴进去,保存退出

继续执行:

sudo ldconfig

打开/etc/profile.d/oracle.sh,命令为:sudo vi /etc/profile.d/oracle.sh,然后在文件中添加:

export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export PATH=$PATH:$ORACLE_HOME/bin
export PATH=$PATH:$ORACLE_HOME/lib

保存退出

接着执行命令:

sudo ln -s /usr/include/oracle/12.1/client64 $ORACLE_HOME/include

检查环境是否配置完成:ls $ORACLE_HOME

到此,在终端运行sqlplus过着sqlplus64应该可以了,如果还是不行,请按照上述网站提示自己找问题

第四步:

接下来就是安装cx_Oracle包的过程了,这个过程折腾了老长时间,主要make时候报错,不知道到底错在什么地方,请教高手后问题终于解决,待会把报错贴上

首先下载cx_Oracle包,可以去python官网或者cx_Oracle官网下载,python官网下载地址:https://pypi.python.org/pypi/cx_Oracle/5.1.3

现在最新版本是5.1.3的,我当时用的是5.1.2,不管怎样,执行命令都是一样的,按着来就是

解压 cx_Oracle-5.1.2.tar.gz:tar -xvzf cx_Oracle-5.1.2.tar.gz

进入解压好的目录: cd cx_Oracle-5.1.2,如果不对,加绝对路径

执行安装:python setup.py install

这时候问题就来了,总是报错

distutils.errors.DistutilsSetupError: Oracle home (/usr/lib/oracle/12.1/client64) does not refer to 11g, 10g, 9c

看网上以为说修改setup.py文件中某行,具体也忘了,结果还是报错

Traceback (most recent call last): 
File "setup.py", line 132, in <module>
raise DistutilsSetupError("cannot locate an Oracle software " \
distutils.errors.DistutilsSetupError: cannot locate an Oracle software installation

实在不行,求助大神,两分钟给搞定了,不得不佩服呀

直接贴上命令吧,

ln -s /usr/lib/oracle/12.1/client64/lib/libclntsh.so.12.1 libclntsh.so.11.1

然后再执行:

python  setup.py install

原来setup.py文件中还不支持12.1版本的,cx_Oracle-5.1.3.tar.gz说不定已经支持了,没试

检验是否安装成功

w*********@root:~/oracle_soft$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>>

至此,一切搞定!!!


 

更多相关文章

  1. Python执行系统命令:使用subprocess的Popen函数
  2. Python读取修改ini配置文件[ConfigParser]
  3. 用户输入从.csv文件生成新列表?
  4. Python文件操作大全,随机删除文件夹内的任意文件
  5. 当使用一个传送到另一个的python文件时,我可以将stdin与argv结合
  6. 从Django开发服务器的根服务提供静态文件
  7. Python第十天 print >> f,和fd.write()的区别 stdout的buffer 标
  8. 如何使用os.listdir()忽略隐藏文件?
  9. 用python解析word文件(二):table

随机推荐

  1. MySQL索引帮助-哪个更快?
  2. PO,Hibernate,VO,struts,spring,hibernat
  3. 自建MySQL5.6数据库查询优化
  4. 从MM-DD-YYYY格式sql中获取月
  5. MySQL8.0.16 单机 Linux安装以及使用
  6. mysql联合索引分析测试
  7. 尝试使用PHP和MySQL获取节点的路径
  8. 使用多个左连接查询 - 点列值不正确
  9. MySQL 5.6 MRR 的存储过程完美诠释
  10. Amoeba for MySQL---分布式数据库Proxy解