栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

基于PyQt5的Python程序移植到Ubuntu系统平台的要点

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于PyQt5的Python程序移植到Ubuntu系统平台的要点

写在前面

因为需要学习SLAM,最近装了Ubuntu系统,想到去年在Windows系统用PyCharm编写过一个基于PyQt5的图像处理Python程序(该项目之后要申请软件著作权,申请完后来补链接),思考将其移植到Ubuntu平台上需要做什么修改,从结果来看还是遇到了很多bug。


统一环境

由于我在Windows上使用Anaconda管理环境,深知其方便所在,所以也追求移植后一致的开发环境。
我在Ubuntu20.04上安装了Anaconda,还安装了PyCharm,将这个图像处理程序的环境设置在Anaconda中,按照当时列出的requirements.txt用和当初一样的pip install命令安装一致版本的依赖:

pip install opencv-python==4.5.1.48
pip install PyQt5==5.15.4

然后就出bug了…


问题描述

在PyCharm里运行后报如下错误:

QObject::moveToThread: Current thread (0x55a85eef2e00) is not the object's thread (0x55a85edecf50).
Cannot move to target thread (0x55a85eef2e00)

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/mcqueen-zero/anaconda3/envs/imgproapp/lib/python3.9/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.


进程已结束,退出代码134 (interrupted by signal 6: SIGABRT)

原因分析

参考Ubuntu自身环境已经安装的Qt与OPENCV冲突,具体到我的问题可能是Ubuntu环境里的Qt和我anaconda环境里的opencv-python不知怎么产生了冲突。他给出的方法是直接删除Qt,我也忘记了我Ubuntu里的Qt是啥时候怎么装的,我感觉是装ROS的时候连带安装的,不能轻易删除。
此外,切换到该项目对应的anaconda环境后,conda list命令列出了该环境下的所有库,是正确合理的;但用pip list命令却还列出了ros相关的一系列库,而这些是当初ros装的。我已经conda activate切换到这个环境了,按理说应该不会出现这些库,我就思考这个pip方法安装的包是不是无法做到版本隔离,或者说anaconda里的pip包无法和Ubuntu里的pip包隔离。


解决方案

又查到OPENCV和ROS冲突,看来是普遍问题,为了方便采用其提到的最后一种方法,全部改为conda install方法安装,缺点就是无法做到依赖版本完全一致:

conda install opencv
conda install pyqt

注意conda方法是安装opencv而非opencv-python。
然后遇到了from cv2.cv2 import xxx找不到cv2.cv2的bug,还需安装:

pip install opencv-contrib-python

之后程序可以运行,Qt的界面也可以显示了,查询主要安装的库版本为:

NameVersionChannel
opencv4.5.4
pyqt5.9.2
opencv-contrib-python4.5.5.64pypi
numpy1.22.3pypi
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号