先说一下我运到的坑:工作环境win64,数据存在Oracle数据库中,并不清楚instantclient是多少位。cx_Oracle 64,导致数据库连接不上报错,需要重新下载/安装等。下面简单总结一下我的环境部署。我之前连接过oracle18.5,现在客户是oracle11.2,需要重新安装配置。我电脑是Python37,但是cx_Oracle的版本需要Python36,那就在安装python36.

0. 时刻切记

安装配置时,必须把握一个点,就是版本一致!包括:系统版本,python版本、依赖包版本。

【笔记】

2,安装cx_Oracle https://blog.csdn.net/wangshuang1631/article/details/71057054
2.1 $uname -a //查看系统是否是 Linux x86-64
2.2 下载以下两个文件,两个文件放在同一目录下:basic和sdk。http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
instantclient-basic-linux.x64-11.2.0.3.0.zip
instantclient-sdk-linux.x64-11.2.0.3.0.zip
2.3 解压到instantclient_11_2目录下,

unzip instantclient-basic-linux.x64-11.2.0.3.0.zip
unzip instantclient-sdk-linux.x64-11.2.0.3.0.zip
2.4 设置环境变量
root用户:
# vim /etc/profile //修改
export ORACLE_HOME=/home/downloads/instantclient_11_2/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
# cat /etc/profile //查看
# source /etc/profile //使文件生效

普通用户:
修改.bashrc文件来设置环境变量。
通过指令:vi ~/.bashrc,添加如下两行内容:

ORACLE_HOME=/你的目录/instantclient_11_2/
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME

修改完成之后,使你的修改生效,使用指令 source ~/.bashrc
2.5 建立一个连接libclntsh.so
cd /你的目录/instantclient_11_2/
ln -s libclntsh.so.11.1 libclntsh.so
2.6 安装cx_Oracle 下载cx_Oracle-5.2.1.tar.gz
tar -xvf cx_Oracle-5.2.1.tar.gz
cd cx_Oracle-5.2.1
python setup.py install
2.7 验证 使用python指令验证:

import cx_Oracle

1. 准备

查看要连接的oracle数据库版本:执行:select * from v$version; 结果:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

比如我要连接11.2版本,之前也练过18.5版本

2. Python环境

Python3.6:cmd查看 python -V  ,系统:windows64位或者32位。

注意事项:需要根据现场系统版本位数、数据库的服务端和客户端的版本位数确定。如oracle的server端是32位,则客户端instantclient需要是32位, anaconda对应win32版本。

当然,你64位的操作系统也是可以安装32位的开发环境。反之则不行!切记!

oracle客户端的版本,cx_Oracle的版本,要与Python版本和位数对应:

3 数据库

数据库版本:须要确保数据库的客户端版本不低于服务端的版本,如果连接oracle数据,可通过select * from v$version查看版本信息或者通过plsql(navicat)配置查看目录instactcliet的目录所在,确定使用的oracle客户端的版本,然后确定下载cx_Oracle的版本。

客户端及anaconda位数:与服务端保持一致,即服务端是32位,版本11g,则客户端选择11g,32位。

比如服务端版本:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 32bit Production

选择对应

Python版本:Anaconda3-5.2.0-Windows-x86,python3.6;

cx_Oracle的版本:cx_Oracle-6.2-cp36-cp36m-win32

oracle客户端的版本:instantclient-basic-win32-11.2.0.4.0;

若是: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

oracle客户端的版本:instantclient-basic-windows.x64-11.2.0.4.0.zip。下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

这里还需要注意:

cx_Oracle和python版本对应,都是3.6;

cx_Oracle和instantclient版本对应,都是11g

4 安装   

(1)    解压instantclient-basic-windows.x64-11.2.0.4.0.zip到你的目录,比如我的是,D盘根下。

(2) 进入安装目录instantclient_11_2,修改network/admin/tnsnames.ora 文件,若没有,就新建两级文件夹 和文件tnsnames.ora 。

(3)写文件。tnsnames.ora 文件内容

cs_de_o=
(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.145.62)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = CSZHANG01))
)

HOST = 192.168.145.62  --服务器ip
SERVICE_NAME=CSZHANG01 --服务器的实例名
cs_de_o                --给这个tns的别名吧(反正是你自己看,你能区别出来就行)

(4)配置环境变量

安装 Anaconda:首先安装Anaconda,然后安装依赖包,这里需要注意一下,有可能cx_Oracle依赖的包和做EDA分析依赖的其他包有冲突,这里建议先安装其他依赖包,最后安装cx_Oracle。

安装完毕后,须把oracle客户端instantclient中的三个文件oci.dll,oraocci11.dll和oraocei11.dll至anaconda根目录。

手动安装:把下载的文件解压,复制oci,oraocci11,oraociei11的3个DLL粘贴到你的PY目录的Lib/site-packages文件夹下面。

(2)下载plsql 工具(解压)

(3)配置环境变量

 TNS_ADMIN    D:\PL.SQL.Developer\instantclient_11_2\network\admin -----(instantclient_12_1的路径,我是将instantclient 解压在plsql中)NLS_LANG      SIMPLIFIED CHINESE_CHINA.ZHS16GBK   ----(设置语言)

(4)启动plsql,因为还没有配置好,所以你就cancel ,

进入到plsql,在上方的选项栏中 tools-->connection 设置 oracle home  路径 和  oci library 路径

然后apply,重启plsql,就会发现,database 就会显示 cs_de_o, 然后输入你的用户,密码,就可以登录了

转载于:https://www.cnblogs.com/ljt1412451704/p/11250441.html

【大数据课堂0006】【oracle】python3/plsql 使用cx_Oracle遇到到的坑相关推荐

  1. 大数据治理:那些年,我们一起踩过的坑

    写在前面: 这是一个系列文章,沉淀了我在数据治理领域的一些实践和思考.共分为5篇.分别是: 一.大数据治理:那些年,我们一起踩过的坑 主要讲讲数据治理工作中常见的一些误区. 二.要打仗,你手里先得有张 ...

  2. 【大数据课堂000】今天开课了每天更新一集

    大数据技术栈,每天至少一集,坚持到底,欢迎监督! ------李金涛 激情燃烧梦想,野心驰骋非凡! 2019.7.16 转载于:https://www.cnblogs.com/ljt141245170 ...

  3. 大数据岗位面试失败的经历总结,这些面试的坑莫在踩

    本人住在有人间天堂之称的城市,6年多开发经验,最近2年主要在做大数据相关的开发,最近考虑换工作,基本也只考虑大数据相关岗位.目前新工作已经找好,但想分享一下最近面试的失败一些经历(成功的那些就不讲了) ...

  4. 接近淘宝 80%的大数据实时计算平台,从0搭建的经验和坑

    上周一,来自武汉的直播平台斗鱼TV宣布C轮融资,腾讯领投的 15 亿人民币,距其获得 B 轮1亿美元不到半年,也是大写的牛逼. 但小寻更关心他们的大数据架构,作为一个在 2 年多时间里崛起的公司,其流 ...

  5. 大数据写入到Oracle数据库(批量插入数据)

    开发中经常遇到批量插入数据的需求,为了提高开发效率大多会使用ORM架构,个别之处 才会手写SQL,我们使用C#.NET Core5.0开发,所以优先选择了微软的EF. 但是EF原生没有批量操作功能,需 ...

  6. 大数据课堂笔记 day5

    今日目标 [应用]对象和类 [理解]面向对象程序设计 [理解]方法的重载 [掌握]构造方法 面向对象程序设计 面向对象思想 1.定义 首先根据客户的需求抽象出业务逻辑对象: 然后对需求进行合理的分层: ...

  7. 大数据课堂笔记 HDFS的shell操作

    一.HDFS常用命令操作实战 启动Hadoop集群 执行命令   start-yarn.sh  1.创建目录 (1).单层目录 执行命令  hdfs dfs -mkdir /ied 利用WebUI查看 ...

  8. Oracle 大数据集成实施

    Oracle 大数据实施架构 Oracle为广大客户提供了一个预装的用于测试和学习目的的免费大数据环境.你可以在这个环境中对Oracle大数据一体机(Big Data Appliance)上的可选软件 ...

  9. 全球主要大数据公司盘点

    大数据被科技企业看作是云计算之后的另一个巨大商机,包括微软.谷歌.亚马逊和微软在内的一大批知名企业纷纷掘金这一市场.此外,很多初创企业也开始加入到大数据的淘金队伍中,这一领域已经成为实实在在的红海. ...

最新文章

  1. 学习UI设计都需要了解哪些知识
  2. 基于JSP实现毕业设计选题系统
  3. php读取zip文件,php如何读取zip内容?(zip_entry_read函数的使用)
  4. Django websocket 长连接使用
  5. 一些C和C++的常见问题集锦 ----不停更新
  6. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1089:数字反转
  7. 7 种让 if / else 变得更加优雅的方式,你 pick 了吗?
  8. ES6_对象简洁语法_note
  9. 三个月可更改用户昵称两次
  10. 宝塔建站 mysql在哪_宝塔面板安装LAMP,创建网站,创建数据库
  11. 【旧文章搬运】PsVoid中IrpCreateFile函数在Win7下蓝屏BUG分析及解决
  12. js模拟下雨js特效代码
  13. Microsoft SQL Server 2000 简体中文企业版 +SP4升级补丁
  14. 网站建设网页设计小技巧分享
  15. 谷歌浏览器提示adobeflashplayer已过期
  16. 宝塔面板搭建WordPress网站完整教程
  17. window10 多桌面切换快捷键 win+tab
  18. JS - 自由变量与作用域链
  19. WebView加载网页空白问题
  20. 专访阿里视频云叔度:一场技术人的自我修行

热门文章

  1. mysql gis空间数据库_GIS开发:使用空间数据库
  2. jq 鼠标指向隐藏显示区域
  3. RabbitMQ-1 Helloword
  4. 网页撤销后ubuntu本地撤销
  5. 【BZOJ】【3669】【NOI2014】魔法森林
  6. javascript 刷新技巧
  7. linux 自动运行.out,linux系统定时自动重启springboot项目
  8. aspnet拒绝ip访问_代理ip的好处是什么?
  9. canny算子_Canny边缘检测算法
  10. (58)UART外设驱动用户发送模块(三)(第12天)