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 ~

时间: 2024-11-12 11:39:16

Debian下无root权限使用Python访问Oracle的相关文章

非[无]root权限 服务器 下安装perl以及perl模块--转载

转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无root权限.理论上适合所有的用户. 我的安装目录 cd /home/zilhua/software 1.在官方网站下载新版本的源码包: http://www.perl.org/get.html,版本自己选择,我下载的是perl-5.18.0.tar.gz 2.解压 tar zxvf perl-5.18.0.tar.gz 3.进入解压目录 cd /home/zilhua/software/perl-5.

Ubuntu 下获得root 权限

Ubuntu 下获得root 权限 在终端中输入:sudo passwd rootEnter new UNIX password: (在这输入你的密码)Retype new UNIX password: (确定你输入的密码)passwd: password updated successfully 以后,如果在想获得root权限,只需进行如下的操作:su rootPassword: (在此输入你上面设置的密码) 如果要再次禁用 root 帐号, 那么可以执行 sudo passwd -l roo

Linux服务器下没有root权限装Matlab R2013a

Matlab R2013a Unix版下载地址 注意:由于我是在单位的集群系统上装Matlab,没有root权限,故下载下来的.iso文件不能在linux下用mount命令挂载,故先在Win下解压,再将解压后的文件上传至服务器. 由于没有root权限,所有需要安装的内容都装在自己的家目录下. 另外,如果你也是在高性能计算集群上装,最好在登陆节点上装,因为我开始是在计算节点上装总是报错 - -# 平台:系统内核:x86_64.操作系统:CentOS release 6.3 (Final) ====

python 安装 easy_intall 和 pip python无root权限安装

http://www.cnblogs.com/haython/p/3970426.html easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安装easy_install 下载地址:https://pypi.python.org/pypi/ez_setup 解压,安装. python ez_setup.py 安装好easy_install 之后 再安装pip 下载地址:https://pypi.python.org/pypi/pip 解压,安装

无root权限下利用miniconda2成功安装samtools1.5

刚开始学生信,首先碰到的问题就是在没有root权限的前提下服务器上安装各种生信软件,一开始就碰到一个钉子.搜索了网络上各大论坛关于samtools安装教程,从中学到了很多,在此表示对各位战友的详细解说表示感谢.在此介绍一个比较简单实用的samtools安装方法.首先,安装miniconda2,安装过程可参考博文"BioConda --生信工作者的福音",网址:http://blog.sciencenet.cn/blog-2970729-1074395.html:其次,运行命令conda

Linux环境下非root用户安装Python及相关库

以前在使用python的时候,都是使用root用户安装好的全局python,现在,因为root用户安装的Python版本太低,同时自己没有root权限去对全局Python升级,所以要在非root用户下安装自己指定的Python.因此,就重新整理了一份如何在Linux环境下使用非root用户安装python及其相关的库,以备不时之需. 安装python python版本库https://www.python.org/ftp/python/,此处我选择2.7.5版本的,在安装python的时候,使用

Linux下非root权限安装与使用GDAL库的方法

学习GDAL的话推荐两个网站. GDAL的官方文档:www.gdal.org 李民录老师的博客:http://blog.csdn.net/liminlu0314/article/category/777646 下面进入正题. 笔者的系统为RHEL4. 建议Linux的使用者习惯非root权限的操作,这是一个好习惯,在工作中会很有帮助. 首先安装GDAL依赖库PROJ.4和GEOS. PROJ.4是提供投影坐标系相关操作的库,GEOS是提供空间分析计算相关的库.都是开源的项目,可以自行Google

mac os下获得root权限

警告:对系统不了解的请慎用 操作步骤:1.打开实用工具->终端2.键入sudo passwd root 然后提示你输入当前登录用户密码,通过以后,提示你输入两遍root的密码.这样你就设置好root帐号密码了,可以用root来登录MacOS了. 完毕. 给有必要用root权限的朋友们

Linux下创建root权限的账号osadmin

创建root权限的账号osadmin 命令为: useradd -u 0 -o -g root -G root -d /home/osadmin osadmin 创建成功后验证效果: id osadmin 再为其设置口令: passwd osadmin