1. 系统环境,linux, python3.5, pip
以下命令的执行均使用root用户。

2. 执行 pip install cx_Oracle
出错,提示不能定位Oracle的安装。出现该问题的原因是因为没有安装Oracle客户端相关的库文件。
下载文件:instantclient-basic-linux.x64-12.1.0.2.0.zip
下载链接:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

3. 解压下载到的文件,假设解压到 /opt/instantclient_12_1/ 这个目录
设置环境变量:export ORACLE_HOME=/opt/instantclient_12_1/
再次执行 pip install cx_Oracle
出错,提示编译过程未找到 oci.h 这个头文件。

4. 下载文件:instantclient-sdk-linux.x64-12.1.0.2.0.zip
下载链接:一致
解压下载到的文件,假设仍然解压到 /opt/instantclient_12_1/

5. 添加头文件的搜索路径:
export C_INCLUDE_PATH=/opt/instantclient_12_1/sdk/include/
再次执行:pip install cx_Oracle
编译成功,链接出错,提示 cannot find -lclntsh

6. 添加库搜索路径
export LD_LIBRARY_PATH=/opt/instantclient_12_1/
再次执行 pip install cx_Oracle
依然提示未找到
猜测是名称问题,于是建立符号链接:
ln -s /opt/instantclient_12_1/libclntsh.so.12.1 /opt/instantclient_12_1/libclntsh.so
再次执行 pip install cx_Oracle
安装成功。

7. 另开一个 terminal,在 python 中执行 import cx_Oracle 提示未找到共享库。
应该是之前设置的环境变量失效了,故修改用户的配置文件:~/.bashrc
在里面加一行:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/instantclient_12_1/

8. 配置完成

0. 总结:
使用 pip 安装 cx_Oracle 的过程中要 检测 instantclient,编译源码,进行安装。
其中环境变量 ORACLE_HOME 用于表示 instantclient 的安装位置,
C_INCLUDE_PATH 供 gcc 查找 头文件的路径,
LD_LIBRARY_PATH 用于 cx_Oracle的链接阶段和执行阶段。

使用pip安装 cx_Oracle 模块的更多相关文章

  1. 使用pip安装BeautifulSoup4模块

    1.测试是否安装了BeautifulSoup4模块 import bs4 print bs4 执行报错说明没有安装该模块 Traceback (most recent call last): File ...

  2. windows下pip安装python模块时报错

    windows下pip安装python模块时报错总结  装载于:https://www.cnblogs.com/maxaimee/p/6515165.html 前言: 这几天把python版本升级后, ...

  3. windows下pip安装python模块时报错【转】

    windows下pip安装python模块时报错总结 请给作者点赞--> 原文链接 1 权限问题 C:\Users\ljf>pip install xlwt Exception: Trac ...

  4. nanopi NEO2 学习笔记 2:安装 pip 和 pip 安装第三方模块

    我现在越来越喜欢用python做开发了,特别是知道了python还能用rpi.gpio库操作 NEO2 的 io 口之后,更是激动 在进行一下的操作之前,要先更换国内的 apt arm64 源,并更新 ...

  5. Python 安装cx_Oracle模块

    1.Python安装cx_Oracle模块需要安装Oracle,并在环境变量中添加Oracle的路径. 2.没有安装Oracle的需要下载一个oci.dll的文件,并把文件的路径添加到path中. 如 ...

  6. python使用pip安装第三方模块遇到的问题及解决方法

    python使用pip安装第三方模块遇到的问题及解决方法 关注公众号"轻松学编程"了解更多. 使用国内源: 清华:https://pypi.tuna.tsinghua.edu.cn ...

  7. Python 安装cx_Oracle模块折腾笔记

    kali linux/ubuntu下安装: 不得不说安装这个模块很蛋疼,决定做个记录. sudo apt install build-essential unzip python-dev libaio ...

  8. windows下pip安装python模块时报错总结

    http://www.cnblogs.com/liaojiafa/p/5100550.html 前言: 这几天把python版本升级后,发现pip安装模块好多都报错(暂不确定是不是因为升级导致的),我 ...

  9. python 使用pip安装第三方模块

    part 1:使用方法: 1.pip install somePackage picture 1 2.pip show somePackage 例如:pip show pip 弹出关于该模块的信息 p ...

随机推荐

  1. 通过Gulp使用Browsersync实现浏览器实时响应文件更改

    Gulp是什么鬼 Browsersync又是什么鬼 如何安装使用Browsersync 安装 使用 效果图 参考 Gulp是什么鬼 Gulp是一种基于node.js的构建工具,有关构建工具的概念请移步 ...

  2. iOS文档注释

    Eclipse和IntelliJ IDEA系的IDE都有自动生成文档注释的功能,Xcode虽然安装了VVDocument,但是仍然感觉注释的功能不是很完善,于是今天整理了一下书写文档注释的一些用法. ...

  3. 团队作业week9 scenario testing

    1.How do you expect different personas to use your software? What’s their need and their goals,  how ...

  4. 2016.10.14,英语,《American Accent Training》

    这本书是讲述美语发音训练的.已经看了一段时间了,决定向周叶学习,记录读书笔记.计划每天花半个小时,学习3节左右的音频(按照CD TRACK),并完成训练. CD1 Track1 What is Acc ...

  5. 使用 PHP 过滤器(Filter)进行严格表单验证

    PHP 过滤器(Filter)用于验证和过滤来自非安全来源的数据,比如用户的输入,使用过滤器扩展可以使数据过滤更轻松快捷.要求的 PHP 版本是 PHP 5 >= 5.2.0,PHP 7 和 F ...

  6. apache2.2 做后端,增加真实ip到日志中

    apache2.2使用mod_remoteip模块 一.安装 wget https://github.com/ttkzw/mod_remoteip-httpd22/raw/master/mod_rem ...

  7. 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(1)

    1.1.1    对数据库的表进行操作 1.1.1.1   对数据库中表进行创建 [语法:] create table 表名( 列名 列类型 [列约束], 列名 列类型 [列约束], 列名 列类型 [ ...

  8. TCP3次握手连接协议和4次握手断开连接协议

    TCP/IP 状态机,如下图所示: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示. (SYN包表示标志位syn=1,ACK包表示标志位ack=1,SYN+A ...

  9. oracle从零开始学习笔记 三

    高级查询 随机返回5条记录 select * from (select ename,job from emp order by dbms_random.value())where rownum< ...

  10. imx6 usb otg config 配置

    imx6 usb的host和slave配置,配置之后,安装gadget模块,就能够在host和slave之间切换. 参考文档: i.MX 6Dual/6Quad Linux Reference Man ...