PYQT5打包报错 FileNotFoundError ModuleNotFoundError:No Module named ‘MyImport‘

pyinstaller打包pyqt5程序得到exe文件无法运行的问题

在执行该命令之后pyinstaller -D -w main.py,生成的exe文件运行出现报错,ui文件找不到、模块找不到等,这些是因为程序使用到非官方库等问题,总之就是你自己的各种文件在代码中使用到了,但是打包的时候pyinstaller是没办法处理你的那些文件的,因此,打包好了之后要想正确执行exe文件还需要把你用到的那些自定义模块、images、ui等文件全部都放到生成的dist文件夹下,但是注意,并不是一股脑地把所有用到的文件塞到dist里!你需要按照你在代码中的相对路径的位置放置你用到的文件。

用到一般文件的情况

举个例子,假设我们的python文件名为main.py,我们对该文件打包后,会生成一个dist文件夹,打开该文件夹,然后进入main文件夹,就可以看到main.exe可执行程序。假设我们在main.py中用到了ui文件

self.ui = uic.loadUi(r"../operator.ui")

也就是说在原本的文件顺序中,该ui文件是在main.py的上一级文件夹内的,那么为了正确运行exe文件,你就必须将原本的ui文件copy一份到main.exe文件的上一级文件夹,在这里也就是dist文件夹内。
在这里插入图片描述
同理,假如用到了图片,从上面的截图中可以看到,图片和ui文件是处于同一级的,因此为了正确运行exe程序,你也需要将images文件夹复制一份到dist文件夹下。

用到自定义库的情况

但是需要注意的是,如果你引入自定库的话,与上一个情况是不同的,因为pyinstaller生成的文件夹有一个专门放用到的库函数的文件夹。假如我在main.py中用到了自己定义的库,比如这里用到了MyImport.operator内的add方法。打开生成的文件夹,你可以在main.exe文件所在文件夹内看到一个_internal的文件夹,双击进去,可以看到许多库,这就是运行exe文件所用到的库,但是你自己定义的库pyinstaller是不会帮你引入的,因此你需要自己复制一份到这里,注意,不是复制py文件,你引入哪个库就把对应的整个文件夹复制过去,这里引入的是MyImport库内的方法,因此就需要将工程文件中的整个MyImport文件夹复制到_internal文件夹内!

from MyImport.operator import add

在这里插入图片描述

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

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

相关文章

图像处理 mask掩膜

1,图像算术运算 图像的算术运算有很多种,比如两幅图像可以相加,相减,相乘,相除,位运算,平方根,对数,绝对值等;图像也可以放大,缩小,旋…

Git分布式管理-头歌实验分支管理

一、创建本地分支-git branch 任务描述 当你进入一个团队,在获得产品的完整代码之后,你首先要做的就是,在本地创建一个属于自己的分支,然后才能在自己的分支上进行开发。 本关任务:在本地仓库创建一个新的分支&#xf…

flutter小程序开发,Android高级工程师必备知识

AWTK 主要特色: 1、跨平台 AWTK 是跨平台的,这有两个方面的意思: AWTK 本身是跨平台的。目前支持的平台有 ZLG AWorks、Windows、Linux、MacOS、嵌入式 Linux、Android、Web 和嵌入式裸系统,可以轻松的移植到各种 RTOS 上。AWT…

javascript基础入门

1.第一个javascript程序 javascript程序不能够独立的运行,必须依赖于HTML文件,type属性值用来说明脚本的类型,这里 是指使用javascript编写的文本文件; 2.alert警告框 alert()函数显示一条指定的信息&am…

Windows上websocket客户端连接定时存储消息到文件并加载文件定时发送服务端工具实现

场景 在业务开发中,需要对接三方websocket协议数据或者连接并存储线上websocket协议数据,需要使用websocket客户端 连接线上的websocket服务端获取并存储数据,然后将数据存储成文件格式可移植,并将数据复制 到本地,…

【探索AI】二十五 深度学习之第8周:深度学习项目实战

项目名称:基于深度学习的图像分类系统 一、项目背景 随着大数据和人工智能技术的快速发展,图像分类技术在各个领域得到了广泛应用,如安防监控、医疗诊断、自动驾驶等。本项目旨在利用深度学习技术构建一个高效的图像分类系统,实…

Nginx使用—http基础知识

web访问流程 当我们在客户端通过浏览器输入网址的时候,这时候是访问不到服务器的, 先会去找到DNS解析服务器,DNS解析服务器返回IP地址, 客户端通过http协议向服务端发送请求,服务器响应请求并返回对应的资源给客户端&a…

持续更新 | 与您分享 Flutter 2024 年路线图

作者 / Michael Thomsen Flutter 是一个拥有繁荣社区的开源项目,我们致力于确保我们的计划公开透明,并将毫无隐瞒地分享从问题到设计规范的所有内容。我们了解到许多开发者对 Flutter 的功能路线图很感兴趣。我们往往会在一年中不断更改并调整这些计划&a…

CSS实现选中卡片样式操作

图一默认自动选中&#xff0c;并且不可取消选中&#xff0c;当选择其他卡片才可点击下一步 在 “ src/assets ” 路径下存放 save.png&#xff0c;代表选中的状态 <div class"cards"><ul class"container"><li v-for"image in image…

金融科技创新丨MogDB 数据库助四川天府银行信息化改造迈上新台阶

作为四川省重要的城市商业银行之一&#xff0c;四川天府银行自2001年12月成立以来&#xff0c;在中国银行业树立了多项标杆&#xff0c;逐步发展成为具有国际金融背景、跨区域、独具特色的现代精品银行。在信息系统升级改造的道路上&#xff0c;四川天府银行一直秉承着稳中求进…

sentinel docker 基础配置学习

1&#xff1a;去官网下载 Releases alibaba/Sentinel GitHub 2&#xff1a;保存到linux 3&#xff1a;编写dockerfile FROM openjdk:8-jreLABEL authors"xxx" #第二步创建一个文件夹Z RUN mkdir /app #第三步复制jar 到app 下 COPY xxxxxx-1.8.7.jar /app/#第四…

【Web】浅浅地聊JDBC java.sql.Driver的SPI后门

目录 SPI定义 SPI核心方法和类 最简单的SPIdemo演示 回顾JCBC基本流程 为什么JDBC要有SPI JDBC java.sql.Driver后门利用与验证 SPI定义 SPI&#xff1a; Service Provider Interface 官方定义&#xff1a; 直译过来是服务提供者接口&#xff0c;学名为服务发现机制 它通…