Debian下无root权限使用Python访问Oracle
这篇文章的起因是,在公司的服务器上没有root权限,但是需要使用 Python 访问 Oracle,而不管是使用 pip 安装组件还是安装 Oracle 的 client,都需要相应权限。本文即解决该问题。
使用 virtualenv
使用系统自带 Python 和 pip
安装组件时,默认会安装到系统目录下,需要 root 权限才能执行写操作。
不管是从资源隔离的角度,还是从绕过 root 的角度,你都需要一套顺手的 Python 虚拟环境工具:virtualenv
。
去求运维哥哥帮忙安装 virtualenv
吧。顺便说一句,pip
和 virtualenv
在 Debian 下都可以直接使用 apt-get
安装,对应的包分别是 python-pip
和 virtualevn
。如果服务器上没有的话,大胆地提供单吧。
关于 virtualenv
,本文不再赘述,如有疑问,请移步我的另一篇文章《聊聊 virtualenv 和 virtualenvwrapper 实践》。
有了 virtualenv
,就可以建立自己的 Python 虚拟环境了,在虚拟环境中不需要任何 root 权限。之后的工作都是在虚拟中进行的。
安装 cx_Oracle
Python 中访问 Oracle 需要使用 cx_Oracle
,此处直接使用 pip
安装即可。
pip install cx_Oracle --pre
我碰到了一个安装过程中提示找不到 Python.h
文件的,这说明系统中缺少 python-dev
包,是用 apt-get
装的,同样请运维帮装上就行了。
安装 instantclient
只是安装完 cx_Oracle,在 import 的时候会报找不到库。还要再安装一下 Oracle 官方的 instantclient。下载地址在这里,下载Instant Client Package - Basic
即可。
下载之后,进入某个有权限的目录,假如是用户的根目录 ~
。将下载到的 zip 包解压,例如到 ~/oracle/instantclient_12_2/
目录下。之后,需要添加环境变量让系统能够找到这些库。在终端的 rc 文件里,例如 ~/.bashrc
末尾,添加环境变量如下。
export ORACLE_HOME=$HOME/oracle/instantclient_12_2
export LD_LIBRATY_PATH=$ORACLE_HOME:$LD_LIBRATY_PATH
export PATH=$ORACLE_HOME:$PATH
此时,还需要额外做一件事情,就是建立 libclntsh.so
的软链接。
ln -s libclntsh.so.12.1 libclntsh.so
做这件事情的原因是,cx_Oracle
需要使用库文件 libclntsh.so
,但是在解压之后的 instantclient
中只包含带有版本号的该库文件,因此我们需要人工做一个软链接,以供识别。
接下来,让刚修改了环境变量的 rc 文件生效即可。
source ~/.bashrc
需要注意的是,在这次 source
之后,之前进入的虚拟环境将被退出。如果后面还需要继续八戒影院在虚拟环境里工作的话,需要再进入一次。
尾声
现在,理论上应该可以在 Python 里www.rcsx.org正常 import cx_Oracle
了。如果可以的话,说明以及可以使用了。
如果不行的话,需要补充一些报错中提到的包。我在测试过程中发现系统中缺少 libaio1
和 libaio-dev
两个包。一并请运维装上就好了。
Enjoy your work ~
Debian下无root权限使用Python访问Oracle的更多相关文章
- 无root权限安装python
http://lujialong.com/?p=150 pipe 安装第三方包 http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip http://www.cn ...
- 非[无]root权限 服务器 下安装perl以及perl模块--转载
转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无root权限.理论上适合所有的用户. 我的安装目录 cd /home/zilhua/software 1. ...
- 非[无]root权限 服务器 下安装perl以及perl模块
转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无root权限.理论上适合所有的用户. 我的安装目录 cd /home/zilhua/software 1. ...
- linux下无root 安装activepython到指定目录
linux下无root 安装activepython 1.下载ActivePython-2.7.8.10-linux-x86_64.tar.gz 包 2.进入非root用户,如bdc用户,解压 [bd ...
- python 安装 easy_intall 和 pip python无root权限安装
http://www.cnblogs.com/haython/p/3970426.html easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安装e ...
- MySQL5.7.20 二进制包无ROOT权限下安装, 滴滴云服务器
01, 下载安装包 => https://dev.mysql.com/downloads/mysql/ 02, 上传到linux系统, 笔者这里使用的 滴滴云服务器 安装在 home/dc2- ...
- gcc 4.9 编译安装 in Ubuntu 18.04(主要用于在无root权限下,进行更新系统 gcc 版本)
gcc 4.9 编译安装教程,因为项目编译过程中,需要采用特定的gcc版本来进行编译,所以进行简要记录,进行备忘: 下载:curl -O -L https://mirrors.tuna.tsinghu ...
- Linux服务器下没有root权限装Matlab R2013a
Matlab R2013a Unix版下载地址 注意:由于我是在单位的集群系统上装Matlab,没有root权限,故下载下来的.iso文件不能在linux下用mount命令挂载,故先在Win下解压,再 ...
- Linux下在root权限下临时使用其它用户运行命令
一.简述 当我们在使用Linux时,经常需要在root权限下执行某些命令,或者在/etc/rc.d/rc.local中写一些角本.而如果某些角本必须使用非root用户时,直接su是不行的,比如Elas ...
随机推荐
- 宿主机Windows访问虚拟机Linux文件(二)
上一篇文章中详细讲述FTP服务(基于文件传输协议的服务),本文则介绍另一种能够实现此功能Telnet(Telecommunications network 远程登陆)服务.本文介绍的telnet我常用 ...
- java校验maven下载的jar文件
有时候maven真的很坑! 有时候提示invalid LOC header (bad signat signature), 但又有时候什么都不提示,工程报错,情况有肯多中,不知道大家遇到过几种诡异的. ...
- CAS 配置NLB 负载均衡网络无法连接
在虚拟机与虚拟机.虚拟机与实机之间利用Windows操作系统自带的网络负载均衡功能如选择单播集群模式,网络就无法通讯,NLB不成功. Scenario #1 在虚拟机与虚拟机之间选择多播模式NLB可正 ...
- Outlook 客户端无法通过 MAPI over HTTP协议 连接
随着Exchange 版本更新升级,是否进行验证客户端建立MapiHttp连接所需的服务器设置已正确配置.即使服务器,负载均衡器和反向代理的所有设置都正确,您可能会遇到连接到Exchange Serv ...
- python爬虫之路——初识lxml库和xpath语法
lxml库:是xml解析库,也支持html文档解析功能,实用功能:自动修正补全html代码. 使用流程:①导入lxml中的etree库,②利用etree.HTML(文件名)或etree.parse(本 ...
- cookie和session是否可以保存对象
session看了一下,是可以保存对象的.语法很普通,但是cookie的话本身是只能保存string类型的信息的,这就需要先序列化,然后接收的页面反序列化后形成对象调用,为了防止乱码,需要在数据传输的 ...
- UVALive 4670 Dominating Patterns (AC自动机)
AC自动机的裸题.学了kmp和Trie以后不难看懂. 有一些变化,比如0的定义和f的指向,和建立失配边,以及多了后缀连接数组last.没有试过把失配边直接当成普通边(一开始还是先这样写吧). #inc ...
- 字符编码ANSI和ASCII区别、Unicode和UTF-8区别
ANSI码ANSI编码是一种对ASCII码的拓展:ANSI编码用0x00~0x7f (即十进制下的0到127)范围的1 个字节来表示 1 个英文字符,超出一个字节的 0x80~0xFFFF 范围来表示 ...
- JsonPath 语法 与 XPath 对比
JsonPath 语法 与 XPath 对比 XPath JSONPath Description / $ the root object/element . @ the current obje ...
- 安装IAR ewarm
一 安装准备 (ST方案) 1 嵌入式集成开发环境IAR ewarm 5.41 2 J-Link4.20 3 emberznet-4.3.0协议栈安装包 option1:tools - stm32软 ...