Python Anaconda - "import cx_Oracle"在命令窗口中出现错误

4
我安装了Python 2.7.7 :: Anaconda 2.0.1 (64位)。目前我正在尝试运行命令“import cx_Oracle”。我运行了easy_install,成功将cx_Oracle egg添加到“site_packages”文件夹中的anaconda目录,并获得消息“Installed c:\fast\anaconda\2.0.1\lib\site-packages\cx_oracle-5.1.3-py2.7-win-amd64”。但是,每当我在python终端中尝试使用命令“import cx_Oracle”时,都会出现错误“ImportError: DLL load failed: %1 is not a valid Win32 application”。我尝试安装特定的32位版本cx_Oracle,但结果仍然相同:“Installed c:\fast\anaconda\2.0.1\lib\site-packages\cx_oracle-5.1.3-py2.7-win-amd64”。有人成功解决过这个问题吗?
3个回答

3
您可以按照以下步骤安装 cx_Oracle Python 包:链接
conda install -c https://conda.anaconda.org/anaconda cx_oracle

除其他外,它将负责安装正确的Oracle客户端:

C:\Anaconda>conda install -c https://conda.anaconda.org/anaconda cx_oracle
Fetching package metadata: ......
Solving package specifications: .
Package plan for installation in environment C:\Anaconda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    oracle-instantclient-11.2.0.4.0|                0        50.9 MB
    cx_oracle-5.1.2            |           py27_0          55 KB
    pyyaml-3.11                |           py27_2         167 KB
    requests-2.8.0             |           py27_0         598 KB
    setuptools-18.3.2          |           py27_0         647 KB
    conda-3.18.1               |           py27_0         215 KB
    ------------------------------------------------------------
                                           Total:        52.5 MB

The following NEW packages will be INSTALLED:

    cx_oracle:            5.1.2-py27_0
    oracle-instantclient: 11.2.0.4.0-0

The following packages will be UPDATED:

    conda:                3.16.0-py27_0 --> 3.18.1-py27_0
    pyyaml:               3.11-py27_1   --> 3.11-py27_2
    requests:             2.7.0-py27_0  --> 2.8.0-py27_0
    setuptools:           18.1-py27_0   --> 18.3.2-py27_0

Proceed ([y]/n)? y

Fetching packages ...
oracle-instant 100% |###############################| Time: 0:00:04  11.48 MB/s
cx_oracle-5.1. 100% |###############################| Time: 0:00:00   1.77 MB/s
pyyaml-3.11-py 100% |###############################| Time: 0:00:00   2.14 MB/s
requests-2.8.0 100% |###############################| Time: 0:00:00   3.82 MB/s
setuptools-18. 100% |###############################| Time: 0:00:00   4.25 MB/s
conda-3.18.1-p 100% |###############################| Time: 0:00:00   1.11 MB/s
Extracting packages ...
[      COMPLETE      ]|##################################################| 100%
Unlinking packages ...
[      COMPLETE      ]|##################################################| 100%
Linking packages ...
[      COMPLETE      ]|##################################################| 100%

1
你在原始配置中是否有特殊设置来启用即时客户端安装,Franck?我尝试过,但发现它根本没有处理即时客户端侧面...现在出现“DLL加载失败:找不到指定的模块”错误。 - Neil
除非你像我一样使用的是x32位的Windows,否则cx_oracle似乎只适用于x64位系统。 - kiradotee

1

我之前安装了32位版本的Oracle客户端。安装64位版本后,它正常工作了。


0

Oracle客户端和Python平台必须相同(64位或32位)

使用以下方法确定您当前的平台:

  import platform
  platform.architecture()

如果默认安装的版本5.3存在编写问题,您可以尝试安装6.0b2版本来解决。
 python -m pip install cx_Oracle --pre

当Anaconda失败时,您可以尝试使用pip。

Anaconda 3.5(64位Windows)安装cx_Oracle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接