【移植代码】matlab.engine报错、numpy+mkl安装、Qt platform plugin报错总结

文章目录

    • numpy报错
    • numpy安装
    • PyQt5报错
    • matlab.engine无法加载
      • 确认配置版本
      • 进行配置
    • matlab文件路径缺失
    • vscode无法debug3.7以下版本
    • 总结

今天的任务是复现师姐的代码,代码在服务器的环境下可以跑,而我要做的,就是将环境和源码配置好,在我自己的电脑上跑起来。本以为只是一个虚拟环境复制的工作,没想到有这么大的坑。

已经将服务器上的整个虚拟环境evns的文件夹拷贝了过来,并进入该环境测试。

numpy报错

pythonnumpy版本不匹配的时候,经常会出现莫名的报错,此时需要卸载重装:
numpy卸载的时候往往要卸载两遍
pip uninstall numpy命令卸载的时候,卸载过后可能发现pip list中还有一个版本,需要再卸载一次。

numpy安装

直接用pip install安装的话可能会自动安装最新版本的,还是对不上,因此需要参考这篇博客的做法。用numpy+mklscipy的第三方库:https://www.lfd.uci.edu/~gohlke/pythonlibs/
选择自己的环境对应的版本下载即可,cp36python=3.6win_amd64win是64位。image.png
下载好之后,把这两个包放在python安装的Scripts目录下。
如果是自己的虚拟环境,那么就在自己虚拟环境对应的Scripts目录下。
安装时,首先要在终端将工作空间定位到我们放安装包的目录下,然后再进行安装。
image.png

PyQt5报错

调试的时候会有这种报错。
image.png
用网上的其他方法都不太好
解决办法:检查pip list 是否缺少PyQt5

pip install PyQt5
pip install pyqt5-tools

记着更换源会快一些

pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5
pip install --user -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5-tools

不知道在服务器上怎么跑起来的,不过在自己电脑上查看pip list确实没有PyQt5

matlab.engine无法加载

因为代码中有涉及用python执行matlab的.m文件的情形,因此在反复matlab.engine报错之后,突然意识到,自己电脑上python和matlab是没有像服务器上的那样已经配合好了的。
详细请看这篇博客。

确认配置版本

python版本和matlab版本是有一一对应关系的,否则无法建立联系,对应关系见下。https://www.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/sysreq/files/python-compatibility.pdf

image.png
python 与 matlab 版本对应关系

由图可知Python3.8解释器需要 matlab2020b以上版本,Python3.7解释器需要 matlab2019a以上版本等等依此类推。

根据这张图确定你的python解释器去安装对应的matlab版本。

进行配置

matlab的安装方法就不累赘了,这里已默认你安装好了对应版本的matlab。

matlab里面找到python engine

大部分python库都是通过pip来安装的,而matlab自R2014b以后引入了MATLAB engine这一功能, 提供了对Python的支持,matlab.engine的安装不是通过pip安装的。

matlab安装路径\extern\engines \python 文件夹
image.png

cmd方法配置连接

进入控制台,**如果用了虚拟环境记得一定要conda activate进入虚拟环境。**进去找到python engine的位置

见下图红色方框,在后面输入语句,见下图椭圆方框,enter 确认。

python setup.py install

image.png
enter确认后发现cmd界面运行一堆语句,咱不用管,见下运行过程
image.png

…R2021a-py3.7.egg-info,这告诉我们python3.7 解释器可以调用matlab了,注意一定要符合自己所需python的版本哦。

image.png

运行完之后我们发现之前的python engine路径多了些文件,见下图,相比之前多了一个build文件夹

image.png

至此python配置matlab就已经配置完成了,就可以用python 调用 matlab方法 进行调用matlab函数了。

matlab文件路径缺失

最后执行到某句的时候,出现了这个报错:

未定义与 'double' 类型的输入参数相对应的函数 'stblfit'

看报错位置是.m文件内部,就意识到了应该是文件夹没有加入matlab的执行路径内。

点这里的设置路径
R(IG_MB3CJGF(J7US{4UE8L.png


将自己python代码的文件夹(也就是要执行的.m文件所在的文件夹添加进去,就可以顺利跑了)

vscode无法debug3.7以下版本

在调试代码的时候,突然发现更新之后的vscode给我说python版本是3.6,已经不支持了?
查了一下是vscode扩展版本的问题,只需要重新安装低版本的python插件即可。
照着这个

总结

移植代码真的很多坑啊,不只是python环境的问题,各种依赖包、和matlab的联动,版本不一等等。花了一整个白天的时间去调试:( 。或许用docker能更快移植呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/156417.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript使用类-模态窗口

**上节课我们为这个项目获取了一些DOM元素,现在我们可以继续;**这个模态窗口有一个hidden类,这个类上文我们讲了,他的display为none;如果我们去除这个hidden的话,就可以让这个模态窗口展现出来。如下 cons…

yolov5加关键点回归

文章目录 一、数据1)数据准备2)标注文件说明 二、基于yolov5-face 修改自己的yolov5加关键点回归1、dataloader,py2、augmentations.py3、loss.py4、yolo.py 一、数据 1)数据准备 1、手动创建文件夹: yolov5-face-master/data/widerface/tr…

【postgresql】

看到group by 1,2 和 order by 1, 2。看不懂,google,搜到了Stack Overflow 上有回答 What does SQL clause “GROUP BY 1” mean? 大概意思就是,group by, order by 后面跟数字,指的是 selec…

git命令笔记

git命令笔记 前言:git对于软件开发和协作的重要性不言而喻,在企业开发中,git命令和linux命令的使用同样重要。作为开发者,需要牢记并熟练使用常见的git命令 git工作流程图 命令如下: clone(克隆&#xf…

虹科方案|国庆出游季,古建筑振动监测让历史古迹不再受损

全文导读: 国庆长假即将到来,各位小伙伴是不是都做好了出游计划呢?今年中秋、国庆“双节”连休八天,多地预计游客接待量将创下新高,而各地的名胜古迹更是人流爆满。迎接游客的同时,如何保障历史古迹不因巨大…

ATFX汇市:美国9月CPI数据来袭,机构预期年率增速将继续回落

ATFX汇市:今日20:30,美国劳工部将公布9月未季调CPI年率增速,前值为3.7%,预期值3.6%;9月未季调核心CPI年率,同一时间公布,前值为4.3%,预期值4.1%。无论是名义CPI增速还是核心CPI增速&…

vue配置@路径

第一步:安装path,如果node_module文件夹中有path就不用安装了 安装命令:npm install path --save 第二步:在vue.config.js文件(如果没有就新建)中配置 const path require("path"); function …

el-data-picker限制日期可选范围

<el-date-pickerclass"date"v-model"date"type"date"change"dateChange"value-format"yyyy-MM-dd"format"yyyy-MM-dd"placeholder"选择日期":picker-options"datePickerOptions"></…

基于SpringBoot的大学城水电管理系统

目录 前言 一、技术栈 二、系统功能介绍 管理员模块的实现 领用设备管理 消耗设备管理 设备申请管理 状态汇报管理 用户模块的实现 设备申请 状态汇报 用户反馈 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛…

【Java 进阶篇】JavaScript 介绍及其发展史

JavaScript是一门广泛应用于Web开发的编程语言。它是一种高级的、解释性的脚本语言&#xff0c;主要用于改善用户与Web页面的互动体验。本篇博客将为你详细介绍JavaScript的基础知识、历史背景和它在Web开发中的重要作用。我们还将讨论JavaScript的发展史&#xff0c;从它的起源…

【Java 进阶篇】JavaScript二元运算符详解

JavaScript是一门多用途的编程语言&#xff0c;它支持各种运算符&#xff0c;包括二元运算符。二元运算符用于执行两个操作数之间的操作&#xff0c;这两个操作数通常是变量、值或表达式。在本篇博客中&#xff0c;我们将详细探讨JavaScript的二元运算符&#xff0c;包括它们的…

设计模式-状态模式

介绍 一个对象有状态变化每次状态变化都会触发一个逻辑不能总是用if else来控制 示例 交通信号灯不同颜色的变化 UML类图 传统UML类图 简化后的UML类图 代码演示 // 状态&#xff08;红灯、绿灯、黄灯&#xff09; class State {constructor(color) {this.color col…

A股风格因子看板 (2023.10 第04期)

该因子看板跟踪A股风格因子&#xff0c;该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子&#xff0c;用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第04期&#xff0c;指数组合数据截止日2023-09-30&#xff0c;要点如下 近1年A股风格因子检验统…

一站式解决方案:Qt 跨平台开发灵活可靠

一站式解决方案&#xff1a;Qt 跨平台开发灵活可靠 Qt 是一种跨平台开发工具&#xff0c;为开发者提供了一站式解决方案。无论您的项目目标是 Windows、Linux、macOS、嵌入式系统还是移动平台&#xff0c;Qt 都能胜任。这种跨平台的特性不仅节省开支&#xff0c;还推动了战略的…

CTF Misc(3)流量分析基础以及原理

前言 流量分析在ctf比赛中也是常见的题目&#xff0c;参赛者通常会收到一个网络数据包的数据集&#xff0c;这些数据包记录了网络通信的内容和细节。参赛者的任务是通过分析这些数据包&#xff0c;识别出有用的信息&#xff0c;例如登录凭据、加密算法、漏洞利用等等 工具安装…

【SQL】MySQL中的索引,索引优化

索引是存储引擎用来快速查询记录的一种数据结构&#xff0c;按实现方式主要分为Hash索引和B树索引。 按功能划分&#xff0c;主要有以下几类 单列索引指的是对某一列单独建立索引&#xff0c;一张表中可以有多个单列索引 1. 单列索引 - 普通索引 创建索引&#xff08;关键字i…

基于SpringBoot的城镇保障性住房管理系统

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 房屋类型管理 房源信息管理 房源申请管理 住房分配 房源申请 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上…

Exposure Normalization and Compensation for Multiple-Exposure Correction 论文阅读笔记

这是CVPR2022的一篇曝光校正的文章&#xff0c;是中科大的。一作作者按同样的思路&#xff08;现有方法加一个自己设计的即插即用模块以提高性能的思路&#xff09;在CVPR2023也发了一篇文章&#xff0c;名字是Learning Sample Relationship for Exposure Correction。 文章的…

新闻软文稿件媒体发布怎么做?纯干货

新闻软文稿件需要投放在正确的媒体上&#xff0c;才能获得更好的宣传推广效果&#xff0c;新闻软文稿件媒体发布怎么做&#xff1f;今天伯乐网络传媒就来给大家讲解一下&#xff0c;纯干货&#xff0c;建议收藏起来慢慢看。 一、媒体选择与分析 1. 确定目标媒体 在进行新闻软…

【USRP】NI PCIe-8371

什么是 NI PCIe-8371 PXI远程控制设备。 x4 Gen1 PCI Express主机&#xff0c;832 MB/s&#xff0c;铜缆MXI-Express设备&#xff0c;用于PXI远程控制—PCIe‑8371是一款MXI‑Express远程控制器&#xff0c;用于控制通过有线PCI连接到计算机PCI Express插槽的设备或系统。 当…