工作中需要对Oracle数据库进行连接处理,由于对Python语言较为熟悉,决定配置Python连接Oracle12C数据库。开发机在公司内网,无法访问互联网,也就无法使用pip等简单的安装方式,只能把安装包下载下来,拷贝到服务器中进行安装。最初,我通过下载Python安装包的方式来安装,发现内网机器中,一些基础的包都有缺失,需要根据报错信息先后下载10余个额外的包进行配置,操作复杂,并且容易出现版本错误。多次尝试不成功之后,决定直接安装Anaconda,希望依靠Anaconda相对完善的包来实现顺利安装,最终实践成功。
1. 下载安装anaconda
1.1 下载anaconda
由于是内网机,下载传输较为麻烦,直接找同事要到了Anaconda-3.4.4.0-Linux-x86_64.sh,该版本的anaconda中,Python版本为Python 3.6.1版。各位可以直接到annaconda官网下载操作系统对应的最新版anaconda,当前Python版本为3.7.
https://www.anaconda.com/distribution/#download-section
1.2 安装Anaconda
(1) bash Anaconda安装包名
(2)按照提示直到安装完成
我这里直接用了默认的安装路径,也选择了配置到环境变量中。安装完成后,~/.bashrc中,出现这样的一条:
(3)环境验证
通过which命令确认一下,python和anaconda的环境变量配置是否正确。
2. 下载配置cx_Oracle
2.1 下载cx_Oracle
下载地址:https://pypi.org/project/cx-Oracle/#files
选择相应版本下载(我这里选择了64位服务器、Python3.6的版本):
2.2 安装cx_Oracle
直接在cx_Oracle路径下执行:
#pip install cx_Oracle*.whl
3. 配置Oracle instantclient
3.1 下载相应版本的instantclient和sdk
下载地址:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
将两个文件放在同一个路径下,进行解压,由于解压后路径相同,两个压缩包将解压到同一个目录中:
unzip instantclient-basic-linux.x64-12.1.0.2.0.zip
unzip instantclient-sdk-linux.x64-12.1.0.2.0.zip
3.2 配置环境变量
Bash作为常用的linux shell,有两种运行模式:
(1)Interactive login shell
login shell以下面的顺序读取文件,如果文件不全,以能读到的第一个文件为准:
/etc/profile --> ~/.bash_profile --> ~/.bash_login --> ~/.profile
(2)Interactive non-login shell
非交互式shell以下面的顺序读取文件,也以读到的第一个文件为准:
/etc/bash.bashrc --> ~/.bashrc
/etc/bash.bashrc 和 ~/.bashrc,只对当前用户有效。如果希望所有用户、所有程序都可以读到环境变量,需要将其写在/etc/profile、~/.bash_profile、~/.bash_login或~/.profile中。
这里,我将其配置在~/.bashrc中,与anaconda配置在一起,:
保存文件后,# source ~/.bashrc,使其生效。
4. 验证
4.1 修改host
(1)直接执行连接操作报错
查看host文件,发现未配置hostname:
(2)修改/etc/hosts文件
* 通过hostname命令查到hostname
* 将host添加到/etc/hosts文件中
4.2 再次验证生效:
声明:本文由豆瓣掌原创,请在获得许可后转载。