【问题标题】:Anaconda 3.5 (64bit Windows) Install cx_OracleAnaconda 3.5 (64bit Windows) 安装 cx_Oracle
【发布时间】:2016-04-10 19:42:51
【问题描述】:

我已经为 Windows 64 位安装了 Anaconda 3.5,我需要使用包“cx_Oracle”连接到 Oracle 数据库。

我尝试过使用 anaconda 方式:

conda install -c https://conda.anaconda.org/anaconda cx_oracle

以下错误信息:

Hint: the following packages conflict with each other:
  - cx_oracle
  - python 3.5*
Use 'conda info cx_oracle' etc. to see the dependencies for each package.
Note that the following features are enabled:
  - vc14

cx_oracle 似乎与 Python 3.5 不兼容。

在这之后,我也尝试直接用二进制安装:

python setup.py install

它会抛出一堆错误,例如:

cx_Oracle.obj : error LNK2001: unresolved external symbol OCILobGetChunkSize
cx_Oracle.obj : error LNK2001: unresolved external symbol OCIStmtExecute
cx_Oracle.obj : error LNK2001: unresolved external symbol OCILobFileClose

有没有办法为 Anaconda 3.5 安装 cx_oracle ?

【问题讨论】:

  • 尝试从lfd.uci.edu/~gohlke/pythonlibs/#cx_oracle下载并安装cx_Oracle-5.2+oci12c-cp35-none-win_amd64.whl
  • 嗨 Gohlke,感谢您的评论。我使用wheel文件成功安装了它。但是,当我尝试我的脚本时,它会在下面抛出一条错误消息: Traceback (last recent call last): File "testDB.py", line 1, in import cx_Oracle ImportError: DLL load failed: La procédure spécifiée est introuvable . (找不到指定的过程。)
  • 除了我的注释,我已经安装了oracle客户端11.2.0.3,路径在系统变量Path: C:\oracle\ora_client\bin C:\oracle\product\64bit\ 11.2.0.3.0\bin
  • 二进制文件需要 Oracle 版本 12.1,而不是 11.2。
  • 我也试过这个:下载Oracle客户端12.1,将解压后的文件夹放入Anaconda文件夹,并添加到Path中。但是还是不行……

标签: python oracle anaconda cx-oracle


【解决方案1】:

我也无法从 pip3 或 conda 安装 cx_oracle。通过从 pypi https://pypi.python.org/pypi/cx_Oracle/ 下载 Windows 64 的安装程序最终使其正常工作

【讨论】:

    【解决方案2】:

    这有点不平凡。不过可行。请按以下步骤操作:

    1) 从

    下载适用于 Windows x64 的 Oracle Instant 客户端

    http://www.oracle.com/technetwork/topics/winx64soft-089540.html

    例如选择客户,例如11.2.0.4

    ->instantclient-basic-windows.x64-11.2.0.4.0.zip

    ->instantclient-sdk-windows.x64-12.1.0.2.0.zip

    2)创建目录并在其中解压缩客户端和sdk:

    例如c:\ora\11gx64

    3) 设置 ORACLE_HOME 和 TNS_ADMIN

    详情请见https://superuser.com/questions/949560/how-do-i-set-system-environment-variables-in-windows-10

    例如ORACLE_HOME=c:\ora\11gx64

    和TNS_ADMIN=c:\ora\11gx64

    在你的 %PATH% 中添加 %ORACLE_HOME%

    4) 在创建的目录中放入文件 tnsnames.ora 并填写到 db 的连接字符串:

    %ORACLE_HOME%**tnsnames.ora**

    XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )
    

    -> 用你的主机名替换 127.0.0.1

    -> 用你的 SID 替换 XE

    5) 我想你已经安装了 Python。

    -> 否则访问 Python 下载页面

    -> 安装python(写的时候是3.6.1)

    -> 如果没有安装安装 pip (https://pip.pypa.io/en/stable/installing/#do-i-need-to-install-pip)

    -> 执行 python get-pip.py

    6) 下载并安装 Visual C++ 2015 构建工具

    -> 搜索 Visual C++ 2015 构建工具 -> 安装visualcppbuildtools_full.exe

    7) 使用pip安装cx_oracle

      pip install cx_oracle
    

    (在撰写本文时,默认安装的 5.3 版存在问题,因此必须安装 6.0b2 版)

      python -m pip install cx_Oracle --pre
    

    在我看来,对于 conda 和 pip,第一步是通用的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 2016-06-01
      • 1970-01-01
      • 2018-03-13
      • 2011-12-17
      相关资源
      最近更新 更多