[Python运维]cx_Oracle模块的安装
这个专题讲解Python相关方面的内容,首先是运维方面,例如数据库,Linux等,后续会有Web,爬虫等。
关于Python
Python可以说是目前运维领域最火的一门语言
在看文章之前最好对Python的语法及数据结构有所了解,具体可在网上搜索Python简明教程或廖雪峰的Python教程观看,暂时不需要了解其高级功能。
这部分会和Oracle awr报告穿插着写
上节讲了如何安装Python3.6 ,这节讲述如何利用Python 模块cx_Oracle 连接Oracle数据库
这节包含 oracle客户端的安装和cx_Oracle模块的安装两部分
环境设置
Linux系统为 Centos 6.8
Python环境为 Python 3.6
Oracle 模块:cx_Oracle
Oracle客户端:Oracle 12c Instant Client
yum问题处理
上期讲述的是如何升级Python至3.6,升级完之后yum会无法使用。这时需要修改yum可执行文件文件
将第一行改成 python2.6即可
vim /usr/bin/yum
#!/usr/bin/python2.6
1. 安装Oracle 12c Instant Client
由于这次我们使用Python连接Oracle,所以需要oracle客户端,这里我们使用Oracle 12c Instant Client
注意:12c客户端不支持连接9i及以下数据库,如有需求请下载11g的instant client
下载地址:
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html?ssSourceSiteId=otncn
这里我们下载上图圈出来的2个rpm包(需要注册Oracle账号)
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
安装Oracle客户端(root用户)
rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm rpm -ivh oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
添加ORACLE_HOME用户环境变量(root用户)
vim ~/.bash_profile
export ORACLE_HOME=/usr/lib/oracle/12.2/client64 export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
2.下载cx_Oracle模块
我们知道Python在强大的在于他强大的模块功能,不论你想做什么都有相应的轮子供我们使用,今天介绍的是专门用于连接Oracle数据的一个模块
官网网站为: https://pypi.python.org/pypi/cx_Oracle/5.2.1#downloads
这里我们选择Linux版本。
3.安装cx_Oracle模块(root用户)
下载完成后我们安装
tar zxvf cx_Oracle-5.2.1.tar.gz
cd cx_Oracle-5.2.1
python setup.py build
python setup.py install
验证安装
如import无错误则说明安装成功
至此cx_Oracle模块已经安装完成,下期讲介绍如何利用cx_Oracle模块连接Oracle数据库
- XML Serializable Generic Dictionary
- MATLAB简易验证码识别程序介绍
- android之listview缓存图片(缓存优化)
- 使用ASP.NET实现Model View Presenter(MVP)
- android性能优化1
- 百度地图之收索视野内的建筑物
- Line Counter - Writing a Visual Studio 2005 Add-In
- 百度地图之标注聚会
- How to Add an API to your Web Service
- 「微信小程序」剖析(四):原生的实时DOM转Virtual DOM
- 让你的「微信小程序」运行在Chrome浏览器上,让我们使用WebStorm
- android上拉下拉加载更多数据
- 「微信小程序」剖析(二):框架原理 | 在桌面浏览器上运行的尝试
- Working with Windows Workflow Foundation in ASP.NET
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R语言对巨灾风险下的再保险合同定价研究案例:广义线性模型和帕累托分布Pareto distributions分析
- 精解四大集合框架:Set核心知识总结
- NeurIPS 2020 | 一种崭新的长尾分布下分类问题的通用算法
- 精解四大集合框架:Map核心知识总结
- 厉害了,Matplotlib还能这样画散点图!
- 20种小技巧,玩转Google Colab
- 不用try catch,如何机智的捕获错误
- StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
- 深入理解MySQL中事务隔离级别的实现原理
- 浅析常见的算法范式
- 检查 JavaScript 变量是否为数字的几种方式
- 玩转Google Colab!附20种小技巧
- 猿实战19——商品发布之商详数据准备
- 【大家的项目】code-minimap
- 尤大 几天前发在 GitHub 上的 vue-lit 是啥?