所做的项目需要调用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,问题解决。
OSError: [WinError 126] 找不到指定的模块 —— 解决办法__Yucen的博客-CSDN博客
Python调用dll库函数:[WinError 126]找不到指定的模块_RealCovid19的博客-CSDN博客_python调用dll找不到函数
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
好的,所以我的目标是轻松地将一些数据保存到磁盘以备后用。您如何简单地写入然后读取一个对象?所以如果我有一个简单的类classCattr_accessor:a,:bdefinitialize(a,b)@a,@b=a,bendend所以如果我从中非常快地制作一个objobj=C.new("foo","bar")#justgaveitsomerandomvalues然后我可以把它变成一个kindaidstring=obj.to_s#whichreturns""我终于可以将此字符串打印到文件或其他内容中。我的问题是,我该如何再次将这个id变回一个对象?我知道我可以自己挑选信息并制作一个接受该信
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的