12

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

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

有什么建议么?

4

6 回答 6

10

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

请参阅:Windows 上的 easy_install cx_Oracle(python 包)

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

于 2012-11-05T14:50:18.130 回答
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. 安装外星人:

    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
于 2017-12-11T21:37:21.343 回答
2

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

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

于 2015-02-26T11:28:54.500 回答
2

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

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

于 2012-11-05T14:42:53.897 回答
2

我按照此链接说明进行操作,它对我有用。

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

Oracle Instant Client Basic

Oracle 即时客户端 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
于 2016-04-01T04:52:19.377 回答
1

给 Ubuntu 用户的提示

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

于 2019-09-26T16:12:57.730 回答