"错误:找不到Oracle软件安装"当试图安装cx_Oracle时

时间:2012-11-05 14:32:16

标签: python oracle cx-oracle

新手在这里尝试使用python做一些数据库分析。我一直收到错误: “错误:找不到Oracle软件安装”安装CX_oracle时(通过easy_install)。

问题是我的本地机器上没有oracle,我正在尝试使用python连接到主oracle服务器。我已经设置了另一个程序来执行此操作(visualdb),我有一个.jar文件,我用作驱动程序,但我不知道如何在这种情况下使用它。

有什么建议吗?

6 个答案:

答案 0 :(得分:9)

不要使用easy_install或pip,它们在安装cx_Oracle时效果不佳,因为安装脚本没有自动设置许多环境依赖项。你需要得到一个oracle客户端驱动程序,其中最快的就是instantclient。然后将ORACLE_HOME和PATH指向驱动程序的安装位置,并安装cx_Oracle本身。你应该好好去追求它。

请参阅:easy_install cx_Oracle (python package) on Windows

问题是关于Windows,但答案包括* nix上的信息。

答案 1 :(得分:4)

安装Oracle客户端

  1. 下载Oracle客户端:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

    示例:oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

  2. 安装Alien:

    sudo apt-get install alien
    
  3. 在Ubuntu系统中安装RPM:

    sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm`
    
  4. 添加到环境变量

    vim ~/.bashrc
    export ORACLE_HOME=/usr/lib/oracle/12.2/client64/lib/
    export LD_RUN_PATH=/usr/lib/oracle/12.2/client64/lib:$LD_RUN_PATH
    source ~/.bashrc
    sudo ln -s /usr/lib/oracle/12.2/client64 $ORACLE_HOME/include`
    
  5. 最后

    pip install cx-Oracle
    

答案 2 :(得分:2)

我安装了cx_Oracle,但我还必须安装一个Oracle客户端才能使用它(cx_Oracle模块只是在Python中与Oracle客户端连接的常用和pythonic方式。)

因此,您必须将变量ORACLE_HOME设置为Oracle客户端文件夹(在Unix上:例如,通过shell;在Windows上:如果配置的环境变量中不存在,则创建一个新变量面板)。您的文件夹$ORACLE_HOME/network/admin(Windows上为%ORACLE_HOME%\network\admin)是您放置tnsnames.ora文件的位置。

答案 3 :(得分:2)

我在安装64位Oracle客户端时尝试安装32位版本时收到此消息。

什么对我有用:重新安装64位python(由于某种原因有32位),使用Windows安装程序安装了cx_Oracle(64位版本),它运行良好。

答案 4 :(得分:1)

我遵循了这些link说明,它对我有用。

从以下位置下载Oracle Basic / SDK:

Oracle Instant Client Basic

Oracle Instant Client SDK

mkdir /Users/<username_here>/oracle
mv /Users/<username_here>/Downloads/instantclient-*         
/Users/<username_here>/oracle
cd /Users/<username_here>/oracle
unzip instantclient-basic-macos.x64-11.2.0.3.0.zip
unzip instantclient-sdk-macos.x64-11.2.0.3.0.zip
cd instantclient_11_2/sdk
unzip ottclasses.zip
cd ..
cp -R ./sdk/* .
cp -R ./sdk/include/* .
ln -s libclntsh.dylib.11.1 libclntsh.dylib
ln -s libocci.dylib.11.1 libocci.dylib
vim ~/.bash_profile (and below to bash_profile)

  export ORACLE_HOME=/Users/<username_here>/oracle/instantclient_11_2
  export DYLD_LIBRARY_PATH=$ORACLE_HOME
  export LD_LIBRARY_PATH=$ORACLE_HOME

pip install cx_Oracle

如果您收到如下错误,请执行此操作:

1):未加载库:
       /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1

你必须:

sudo mkdir -p /ade/b/3071542110/oracle/rdbms/lib/
cd /ade/b/3071542110/oracle/rdbms/lib/
sudo ln -s /opt/oracle/instantclient/libclntsh.dylib.11.1 libclntsh.dylib.11.1

答案 5 :(得分:1)

Ubuntu用户提示

在配置了.bashrc环境变量之后,就像在其他答案中所解释的那样,别忘了重新加载终端窗口,键入$SHELL