【问题标题】:"error: cannot locate an Oracle software installation" When trying to install cx_Oracle“错误:找不到 Oracle 软件安装”尝试安装 cx_Oracle 时
【发布时间】:2012-10-25 09:53:27
【问题描述】:

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

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

有什么建议吗?

【问题讨论】:

    标签: python oracle cx-oracle


    【解决方案1】:

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

    见:easy_install cx_Oracle (python package) on Windows

    这个问题是关于 windows 的,但答案包括关于 *nix 的信息。

    【讨论】:

      【解决方案2】:

      安装 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. 安装外星人:

        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`
        

      终于

      pip install cx-Oracle
      

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            【解决方案5】:

            我遵循了这个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
            

            【讨论】:

              【解决方案6】:

              给 Ubuntu 用户的提示

              配置 .bashrc 环境变量后,就像其他答案中解释的那样,不要忘记重新加载终端窗口,输入$SHELL

              【讨论】:

                猜你喜欢
                • 2023-03-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-11-23
                • 2012-01-24
                • 2018-12-16
                相关资源
                最近更新 更多