Matlab调用Python函数,出现OSError: [WinError 126] 找不到指定的模块报错
报错内容及解决方式:
报错的语句是:
py.importlib.import_module('main_matlab')
报错的内容为:
OSError: [WinError 126] 找不到指定的模块。 Error loading"(文件路径)/***.dll" or one of its dependencies.
解决方式:
上述报错提示我们系统缺少该dll文件或其对应的依赖项,
- 先到对应路径查看该dll文件是否存在
- 若不存在,直接在Anaconda配置环境的文件夹搜索,一般都可以找到。将找到的dll文件复制粘贴到根目录下
- 若存在,说明是缺少该dll文件的依赖项,使用Dependencies工具查看所需要的依赖项,后补齐到根目录下
参考文献:
Pyinstaller打包Pytorch框架所遇到的问题_python_脚本之家 (jb51.net)
原始问题描述
在TRNSYS_Python联合仿真过程中,由于存在TRNSYS与Matlab的连接,Matlab与MySQL的连接,Matlab与Python的连接,Python与MySQL的连接,直接运行TRNSYS计算报错不显示具体位置,所以需要设置错误标签便于定位,最后定位到上述Matlab不能调用Python文件的情况仍花费很多时间。
解决过程
TRNSYS中报错如下:
由mFileErrorCode=120及info(7)=0&info(13)=0定位到m文件中出现上述变量值的位置,发现是一个函数调用出错,此函数内包含调用py文件的语句及数据库的连接与查询操作语句,暂时不能明确是哪些语句出现问题。
于是我通过打标签的方式检查是函数中的哪一句出现了问题,具体操作方式如下:
1.检验Matlab与MySQL连接正常
2.在之前定位到的函数内每一句之间插入写入数据库操作
3.再重新运行TRNSYS,通过数据库里表格里显示的数值成功定位到函数内出问题的语句。
问题就出在设置的python文件无法调用,一般的思路就是Python的文件里的代码可能有问题,如果代码不复杂,就在Pycharm里运行代码看看是否有报错。
但是我的Python文件跑出来并未报错,于是我又采用逐步定位的方式,将Python中的代码一段一段解开注释,并在Matlab中调用该文件,最终将出问题的地方定位在import torch语句上。
其实这种方式可以在Matlab中一步解决,就是直接在Matlab命令行里执行文本开头报错的那段代码,Matlab会直接指出调用的Python文件中是哪一句出现了问题。
我自己的那种方式也只能定位错误,不能指出错在哪,而Matlab中报错信息就很详细,可以直接上网查询解决方式,不用自己组织语言。
总结
联合仿真报错无法精确定位,打标签定位错误的方式很有逻辑性也很实用,但是打完记得将操作过的文件复原。
Matlab调用Python函数,出现OSError: [WinError 126] 找不到指定的模块报错相关推荐
- Python调用C++ DLL库 ------OSError: [WinError 126] 找不到指定的模块。
Python调用C++ DLL库 解决Python中 OSError: [WinError 126] 找不到指定的模块 的问题. 一.问题: 在进行Python开发的过程中,很可能遇到调用C++ ...
- OSError: [WinError 126] 找不到指定的模块
python调用动态库: OSError: [WinError 126] 找不到指定的模块 解决方法:把当前目录添加到系统中: 要添加目标文件的父目录: current_dir结尾不带'/',注意,后 ...
- python打包不能在其他电脑打开、找不到指定模块,pyinstaller打包移植到别的电脑报错OSError: [WinError 126] 找不到指定的模块。...
首先说一下我的环境 win10 python3.6.4 下面是我安装库 版本 pip list Package Version --------------- ------------ ...
- OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.
OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'. 原文:http://blog.csdn.net/wobeatit/ ...
- OSError: [WinError 126] 找不到指定的模块————Shapely
问题 OSError: [WinError 126] 找不到指定的模块----Shapely pip install shapely之后,跑程序报错误,错误如下:import shapely 没问题, ...
- OSError: [WinError 126] 找不到指定的模块。【专治疑难杂症】
OSError: [WinError 126] 找不到指定的模块. Error loading "D:\xxxxxxx\lib\site-packages\torch\lib\asmjit. ...
- OSError: [WinError 126] 找不到指定的模块。
OSError: [WinError 126] 找不到指定的模块. 参考博客:https://www.pianshen.com/article/90841683243/ 环境:Win10+Anacon ...
- 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 ...
- 完美解决 OSError: [WinError 126] 找不到指定的模块
OSError: [WinError 126] 找不到指定的模块 问题: 遇到这个问题 大多数都是 缺少了 dll 今天在python中遇到了 OSError: [WinError 126] 找不到指 ...
- 解决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 ...
最新文章
- Ajax跨域:Jsonp原理解析
- 怎么判断间隙过渡过盈配合_什么是配合间隙过盈过渡配合
- 隐私计算--联邦学习
- 基于python的网站_基于Python的网站爬虫应用研究
- ASP.NET MVC编程——控制器
- 漫画算法:判断2的乘方
- LeetCode 1657. 确定两个字符串是否接近
- Container.ItemIndex 获取reapeater行号
- 屌丝就爱尝鲜头——java8初体验
- SpringMVC拦截器(包括自定以拦截器--实现HandlerInterceptorAdapter)(资源和权限管理)...
- htmlentities和htmlspecialchars 的区别
- 计算机语言培训机构排行榜,TIOBE 2月编程语言排行榜
- 手机详情 html代码生成器,dede源码最新版手机移动端静态生成模块插件
- 既生左,何生曾——曾国藩与左宗棠一生恩怨考
- python word排版_python办公自动化:自动进行word文档处理和排版-docx文件
- 二进制调色器程序管理
- 腾讯云服务器备案全流程详细内容记录40天备案的血与泪
- 配置云服务器(阿里云)时遇上问题
- python 可视化分析平台_python 数据分析数据可视化工具matplotlib
- 服务IP(VIP)的作用