问题描述

所做的项目需要调用C编译好的dll动态链接库,一般来说,直接运行

import ctypes
dll_read = ctypes.cdll.LoadLibrary('./xxx.dll')

就可以实现dll的读取,但却一直报错

OSError: [WinError 126] 找不到指定的模块。

如果是Python3.8以上的版本,会报错

FileNotFoundError: Could not find module ‘xxx.dll’.
(or one of its dependencies). Try using the full path with constructor syntax.

另外我在Pycharm运行时,报错

can't open file '<unprintable file name>': [Errno 2] No such file or directory

原因分析:

主要原因有两个

1. 没有找到该DLL文件,路径不对或者被杀毒软件隔离;

2. DLL动态库依赖的其他DLL动态库无法被系统找到


解决方案:

针对原因1:尝试把文件路径改为绝对路径;把杀毒软件关闭重新操作

针对原因2:补充下载该DLL依赖的DLL 动态链接库

这里主要针对原因2(缺乏依赖库)进行详述

如果无法确定相关DLL 动态库,引起这类问题的原因很可能是由于你的目标主机没有安装相关的C++环境。解决方法:下载Visual C++ Redistributable运行库,64位版本下载地址为 https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145

我尝试了这种方法,由于我本地已存在C++环境,显示已安装了其余版本,所以该方法对我无效

由于无法从报错中知道究竟缺少了哪个依赖库(如果不是因为dll读取而出现了这个错误,可以检查终端中报错点的库名,可能是版本问题,我之前就在使用过shapely库时遇到过这个报错,更换版本后解决),所以需要借助Dependency Walker查找其依赖库。下载链接:Dependency Walker (depends.exe) Home Page

下载对应版本后,启动depends.exe,将要载入的dll拖进去就行。界面如下

注意因为查找依赖库的过程要花费很长时间,所以界面会长时间未响应,一定要耐心等待

这里以我使用的“seg_eval.dll”为例,主要观察前面有黄色问号标注的第一级依赖库,可以去C:\Windows\System32尝试找一下,如果没有的话就需要去下载,推荐去https://cn.dll-files.com下载它们,根据缺少的dll名查询,下载到本地后放进C:\Windows\System32列表下

一般到这里问题都解决了,然而我在dll-files.com并没有找到opencv_world451d.dll,搜索发现是opencv4.5.1对应版本中的dll(与文件名中的数字符合),于是下载了对应版本的opencv,下载地址Releases - OpenCV

解压后将opencv\build\x64\vc15\bin路径下的opencv_world451d.dll放进C:\Windows\System32列表下,重新运行depends.exe载入dll发现第一级目录都不存在黄色问号

最终,重新运行库读取dll,问题解决。


Reference:

OSError: [WinError 126] 找不到指定的模块 —— 解决办法__Yucen的博客-CSDN博客

Python调用dll库函数:[WinError 126]找不到指定的模块_RealCovid19的博客-CSDN博客_python调用dll找不到函数

Python读取dll库报错:[WinError 126]找不到指定的模块相关推荐

  1. OSError: [WinError 126] 找不到指定的模块

    python调用动态库: OSError: [WinError 126] 找不到指定的模块 解决方法:把当前目录添加到系统中: 要添加目标文件的父目录: current_dir结尾不带'/',注意,后 ...

  2. python打包不能在其他电脑打开、找不到指定模块,pyinstaller打包移植到别的电脑报错OSError: [WinError 126] 找不到指定的模块。...

    首先说一下我的环境 win10 python3.6.4 下面是我安装库 版本 pip list Package         Version --------------- ------------ ...

  3. Python调用C++ DLL库 ------OSError: [WinError 126] 找不到指定的模块。

    Python调用C++ DLL库 解决Python中 OSError: [WinError 126] 找不到指定的模块 的问题. 一.问题:   在进行Python开发的过程中,很可能遇到调用C++ ...

  4. OSError: [WinError 126] 找不到指定的模块Errorloading“torch\lib\caffe2_nvrtc.dll“ or one of its dependencies.

    import torch x = torch.empty(5, 3) print(x) 报错 D:\Anaconda\anaconda3\python.exe D:/Python1自学/pythonP ...

  5. 解决Pytorch:raise err OSError: [WinError 126] 找不到指定的模块caffe2_detectron_ops.dll” or one of its dependen

    解决Pytorch:raise err OSError: [WinError 126] 找不到指定的模块 caffe2_detectron_ops.dll" or one of its de ...

  6. OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.

    OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'. 原文:http://blog.csdn.net/wobeatit/ ...

  7. OSError: [WinError 126] 找不到指定的模块————Shapely

    问题 OSError: [WinError 126] 找不到指定的模块----Shapely pip install shapely之后,跑程序报错误,错误如下:import shapely 没问题, ...

  8. OSError: [WinError 126] 找不到指定的模块。

    OSError: [WinError 126] 找不到指定的模块. 参考博客:https://www.pianshen.com/article/90841683243/ 环境:Win10+Anacon ...

  9. OSError: [WinError 126] 找不到指定的模块。【专治疑难杂症】

    OSError: [WinError 126] 找不到指定的模块. Error loading "D:\xxxxxxx\lib\site-packages\torch\lib\asmjit. ...

最新文章

  1. UI自动化测试工具White简介以及使用经验总结(一)
  2. html2canvas图片截图截不到图像的问题解决
  3. 手动部署 Ceph Mimic 三节点
  4. 介绍一个基于simhash作海量文章排重的库:simhashpy
  5. 22岁何同学自制硬核AirDesk!苹果都做不来的超大充电桌,稚晖君点赞
  6. 2022 年人工智能全球最具影响力学者榜单 AI 2000 正式发布
  7. 20200708:动态规划复习day02
  8. SSE3指令集系列----数据加载与算术运算指令
  9. 认知电子战 (1.2):认知理论及其在无线电领域的应用
  10. UT000054: The maximum size 1048576 for an individual file in a multipart req
  11. 绿色沃土计划农业大健康 功能性农业国稻种芯发力耕地体质
  12. 算术平方根的整数部分(简单)*求平方根的三种方法**整数与小数取绝对值*
  13. EXE捆绑机制作原理
  14. 单调栈和单调队列的本质区别
  15. 相关系数|皮尔逊和斯皮尔曼
  16. fatal The remote end hung up unexpectedly
  17. 壁纸|苹果Live壁纸以及静态壁纸,给大家分享点
  18. Electron 自定义托盘实战——桌面计算器
  19. 阿里云物联网平台搭建
  20. Android root环境下设置ro.debuggable = 1

热门文章

  1. [数据挖掘理论与案例] 大数据的4个V
  2. 自学java面向实习从零开始路线
  3. 鸡兔同笼:笼子里一共有鸡和兔子35只,一共有94条退, 笼子里一共有鸡和兔子共多少只
  4. 西南大学网络教育学院计算机答案,西南大学2017年6月网络与继续教育学院《计算机辅助设计》【9123】大作业答案.doc...
  5. 谈谈JavaScript和Java
  6. 计算机专业海报加文字,PS制作简洁漂亮的文字主题海报 -电脑资料
  7. mysql设置语言变量_Mysql语言之数据操作语言
  8. pyQT5 AES 加解密
  9. Winform GDI+ 制作连连看,五子棋等(等格子类小游戏 )
  10. 计算机网络 - 练习(二百三十三)