zoukankan      html  css  js  c++  java
  • 在python中使用cx_Oracle模块出现“DLL Load failed”的处理方法

    当在python中使用cx_Oracle模块时,会出现“DLL Load failed”的错误,网上有很多讲这个问题的处理方法的,但是都不够详细,经过摸索,把详细的解决方法写在这里。

    网上的一般方法是建议把   oci.dll   放入到python的site-package文件夹下,但是具体oci.dll是哪个版本的,没有具体说明,这里我要说的是:oci.dll的版本一定要和cx_Oracle模块的版本一致,不一定要和实际的Oracle的数据版本一致。

    例如:cx_Oracle版本是:10g的,那么oci.dll 也必须是10g的,至于实际连接的数据库版本,只要版本比10g低就可以了,例如9i。
    ================================

    环境:

    Win7 64位

    Python2.7.2 64位

    Oracle client 32位

    cx_Oracle: Windows amd64 Installer (Oracle 11g, Python 2.7)

    在python终端报错:

    Python代码  收藏代码
    1. >>> import cx_Oracle 
    2. Traceback (most recent call last): 
    3.   File "<stdin>", line1, in <module> 
    4. ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。 

    原因:

    在64位系统上安装32位Oracle client,是因为要安装PLSQL Developer,但是货认不了64位的Oracle Client。所以现在导致现在的cx_Oralce认不到oci.dll的32位版本。

    解决方法:

    1.安装64位的oracle client

    2.拷贝一个64位的 oci.dll 到%python_home%\Lib\site-packages 下

     

    附:

        1)oci.dll下载地址(脚本之家):

    http://www.jb51.net/dll/oci.dll.html#down

    下载完成解压,选取其中的64位中的oci.dll复制到site-packages目录下即可。

        2)cx_Oracle下载地址

    http://sourceforge.net/projects/cx-oracle/files/5.1.2/

    选择对应的系统位数,windows最好下载msi格式的,直接执行。

  • 相关阅读:
    .net5访问共享目录
    SqlServer 查询数据库表结构
    SqlServer查询所有表结构信息
    sqlserver 清掉工件号重复的数据
    产生18位的随机数作为bigint
    sql多表联合修改
    sp_addlinkedserver在存储过程中使用
    sqlserver 中随机取数据
    Winform选择目录路径与选择文件路径
    WinFrom 右下角弹出提示框
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4144806.html
Copyright © 2011-2022 走看看