[置顶] linux 下安装python cx_Oracle过程详解
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
>>>
至此,一切搞定!!!
更多相关文章
- Python执行系统命令:使用subprocess的Popen函数
- Python读取修改ini配置文件[ConfigParser]
- 用户输入从.csv文件生成新列表?
- Python文件操作大全,随机删除文件夹内的任意文件
- 当使用一个传送到另一个的python文件时,我可以将stdin与argv结合
- 从Django开发服务器的根服务提供静态文件
- Python第十天 print >> f,和fd.write()的区别 stdout的buffer 标
- 如何使用os.listdir()忽略隐藏文件?
- 用python解析word文件(二):table