zoukankan      html  css  js  c++  java
  • 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 ~

  • 相关阅读:
    RAS ADSL Dial 宽带 拨号
    安全文章收藏
    android系统下可以实时语音对讲的软件应用。
    ArcGIS 10 Engine 我今天的研究战果
    arcgis sample代码之SOE示例代码PageLayout REST Server Object Extension 的源码分析
    eclipse之缩进shift+Tab无法使用的情况
    arcgis sample代码之SOE示例代码Length Calculator Server Object Extension的源码分析
    解决:eclipse双击无法打开工程目录了
    修改注册表,在运行程序后加一个pause;方便查看一闪而过的程序|打开加加 软件简介
    转:2020年,中国将会是一个非常穷的国家!【无论如何我都要转,里面有许多我所想的】
  • 原文地址:https://www.cnblogs.com/tianshifu/p/7334944.html
Copyright © 2011-2022 走看看