• import cx_Oracle ImportError: DLL load failed: 找不到指定的模块。


    我们知道,Python使用cx_Oracle连接oracle的三个步骤是:
    1、先安装cx-Oracle包,地址:https://pypi.org/project/cx-Oracle/5.3/#files
    2、下载Oracle客户端instantclient-basic-win64-12.rar(我的电脑是64位,12是版本,还有11、10等),解压后将oci.dll所在绝对路径添加到环境变量中。
    3、将instantclient_12_2下的所有.dll文件拷贝到python根目录(即与python.exe同级)和F:pythonLibsite-packages目录下。

    运行代码出现异常:import cx_Oracle ImportError: DLL load failed: 找不到指定的模块。
    问题分析:

    • 百度了解决方案 发现1,2,3,步骤完全正确。步骤没问题
    • 然后就是cx-Oracle和instantclient-basic-win64-12.rar的版本对应问题,我装的cx_Oracle-7.3.0-cp35-cp35m-win_amd64.whl,问题不能解决;再卸载装cx_Oracle-7.2.0.tar,依然不能解决。
    • 网上说使用.exe可执行文件直接安装cx_Oracle可以正常安装;我就又卸载了cx_Oracle-7.2.0.tar,删除instantclient的环境变量; 网上下载了cx_Oracle-5.3-12c.win-amd64-py3.5-2.exe, 按照1,2,3步重新装了一次,成功了!

    问题总结:
    1、安装的cx-Oracle时使用.exe可执行程序双击安装,不要pip install XX.whl安装;
    2、cx-Oracle版本需要与instantclient版本适应,我装的是12版(cx_Oracle-5.3-12c.win-amd64-py3.5-2.exe,instantclient-basic-win64-12.rar)。
    3、也可以安装cx_Oracle-5.3-11c.win-amd64-py3.5-2.exe和instantclient-basic-win64-11.rar, 11是版本,64是计算机位数,都要对应。
    4、如果计算机上已经安装了Plsql,那么先看下环境变量,应该已经配置了instantclient32,即32位的instantclient; 此时如果我们是64位计算机,要先安装cx_Oracle-5.3-11c.win-amd64-py3.5-2.exe,再解压instantclient-basic-win64-11.rar,不须再配置环境变量,只须把instantclient64位的所有.dll文件拷贝到python根目录(即与python.exe同级)和F:pythonLibsite-packages目录下即可。

  • 相关阅读:
    【LeetCode】731. 图像渲染
    【LeetCode】130. 被围绕的区域
    小白之HTTP协议熟悉篇
    Java和js常用表达式
    Mysql主主复制高可用解决方案
    解决vue报错:Module build failed (from ./node_modules/_eslint-loader@2.2.1@eslint-loader/index.js): TypeError: Cannot read property 'range' of null
    centos7使用yum安装jdk并配置jdkhome
    阿里nacos安装及使用指南
    js实现给html固定区域增加水印
    MySQL安装教程
  • 原文地址:https://www.cnblogs.com/We612/p/12777459.html
Copyright © 2020-2023  润新知