为python安装cx_oracle

Mo *_*abi 33 python oracle

在Debian 5上,我一直在尝试为python安装cx_oracle模块而没有任何成功.首先,我安装了Oracle-XE的客户端和它的依赖(在以下链接跟着教程这里).

然后,我使用/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin中的脚本来填充环境变量,例如PATH,ORACLE_HOME和NLS_LANG.

一旦完成,我试图运行:

sudo easy_install cx_oracle
Run Code Online (Sandbox Code Playgroud)

但我不断收到以下错误:

Searching for cx-oracle
Reading http://pypi.python.org/simple/cx_oracle/
Reading http://cx-oracle.sourceforge.net
Reading http://starship.python.net/crew/atuining
Best match: cx-Oracle 5.0.4
Downloading http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.0.4.tar.gz?download
Processing cx_Oracle-5.0.4.tar.gz
Running cx_Oracle-5.0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-xsylvG/cx_Oracle-5.0.4/egg-dist-tmp-8KoqIx
error: cannot locate an Oracle software installation
Run Code Online (Sandbox Code Playgroud)

知道我错过了什么吗?

Bur*_*lid 69

替代方式,不需要RPM.你需要root.

  1. 依赖

    安装以下包:

    apt-get install python-dev build-essential libaio1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 下载适用于Linux x86-64的Instant Client

    从Oracle的下载站点下载以下文件:

    文件预览

  3. 解压缩zip文件

    将下载的zip文件解压缩到某个目录,我正在使用:

    /opt/ora/
    
    Run Code Online (Sandbox Code Playgroud)
  4. 添加环境变量

    /etc/profile.d/oracle.sh其中创建一个文件

    export ORACLE_HOME=/opt/ora/instantclient_11_2
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
    
    Run Code Online (Sandbox Code Playgroud)

    /etc/ld.so.conf.d/oracle.conf其中创建一个文件

    /opt/ora/instantclient_11_2
    
    Run Code Online (Sandbox Code Playgroud)

    执行以下命令

    sudo ldconfig
    
    Run Code Online (Sandbox Code Playgroud)

    注意:您可能需要重新启动才能应用设置

  5. 创建符号链接

    cd $ORACLE_HOME 
    ln -s libclntsh.so.11.1 libclntsh.so
    
    Run Code Online (Sandbox Code Playgroud)
  6. 安装cx_Oraclepython包


tsh*_*ang 11

我建议您抓取rpm文件并使用alien安装它们.这样,您可以稍后运行apt-get purge no-longer-needed.

在我的情况下,我需要的唯一env变量是LD_LIBRARY_PATH,所以我做了:

echo export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

我想在你的情况下,路径变量将是/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib.


Mik*_*ico 5

在Mac和Linux上,以下对我有用。此命令应下载所需的其他文件,而无需设置环境变量。

python -m pip install cx_Oracle --pre
Run Code Online (Sandbox Code Playgroud)

注意,-- pre选项用于开发和预发行Oracle驱动程序。在发布时,它正在抓取cx_Oracle-6.0rc1.tar.gz,这是必需的。(我正在使用python 3.6)