报错内容及解决方式:

报错的语句是:

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] 找不到指定的模块报错相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 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 ...

  9. 完美解决 OSError: [WinError 126] 找不到指定的模块

    OSError: [WinError 126] 找不到指定的模块 问题: 遇到这个问题 大多数都是 缺少了 dll 今天在python中遇到了 OSError: [WinError 126] 找不到指 ...

  10. 解决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 ...

最新文章

  1. Ajax跨域:Jsonp原理解析
  2. 怎么判断间隙过渡过盈配合_什么是配合间隙过盈过渡配合
  3. 隐私计算--联邦学习
  4. 基于python的网站_基于Python的网站爬虫应用研究
  5. ASP.NET MVC编程——控制器
  6. 漫画算法:判断2的乘方
  7. LeetCode 1657. 确定两个字符串是否接近
  8. Container.ItemIndex 获取reapeater行号
  9. 屌丝就爱尝鲜头——java8初体验
  10. SpringMVC拦截器(包括自定以拦截器--实现HandlerInterceptorAdapter)(资源和权限管理)...
  11. htmlentities和htmlspecialchars 的区别
  12. 计算机语言培训机构排行榜,TIOBE 2月编程语言排行榜
  13. 手机详情 html代码生成器,dede源码最新版手机移动端静态生成模块插件
  14. 既生左,何生曾——曾国藩与左宗棠一生恩怨考
  15. python word排版_python办公自动化:自动进行word文档处理和排版-docx文件
  16. 二进制调色器程序管理
  17. 腾讯云服务器备案全流程详细内容记录40天备案的血与泪
  18. 配置云服务器(阿里云)时遇上问题
  19. python 可视化分析平台_python 数据分析数据可视化工具matplotlib
  20. 服务IP(VIP)的作用

热门文章

  1. 【LRC动态歌词制作—B站音频】“清新的小女孩-July Tun”为例
  2. python脚本编写测试用例
  3. java vm 参数及设置(转载)
  4. python|cookie和session介绍——以12306验证码破解
  5. 打印机可以打印不能扫描怎么弄_打印机可以打印但是不能扫描是为何
  6. 数据库系统概念第四章习题答案
  7. 基于springboot网上订餐系统
  8. c++实现吃豆子游戏
  9. python移动平均算法_移动平均算法
  10. STM32F427V系列的触摸屏驱动