pyinstaller打包exe多种失败原因解决方法
pyinstaller打包exe多种失败原因解决方法
目录
- pyinstaller打包exe多种失败原因解决方法
- 1、pyinstaller安装有问题
- 1.1 安装pyinstaller
- 1.2 采用anconda的环境启动
- 2、pyqt5与pyside6冲突
- 2.1 打包生成.spec文件
- 2.2 编辑spec文件
- 3、打包成功后打不开exe,exe闪退
- 3.1 spec文件添加对应库
- 3.2 spec文件添加对应图片
- 3.3 重新打包
在制作exe程序时,使用pyinstaller打包经常出现各种错误例如1、pyinstaller安装有问题;2、显示pyqt5与pyside6冲突;3、打包成功后打不开exe,exe闪退等。下面记录一下自己的解决方法,供参考。
1、pyinstaller安装有问题
1.1 安装pyinstaller
首先需要使用pip install pyinstaller对pyinstaller进行安装,最开始我以为我安装成功了因为结果显示
Requirement already satisfied: pyinstaller in…
但是我在使用打包语句(例如python -m PyInstaller --onefile --windowed simulation_app.py) 时一直显示
**‘pyinstaller’ 不是内部或外部命令,也不是可运行的程序或批处理文件。**无法继续下一步
1.2 采用anconda的环境启动
问了下gpt是因为太多的环境都有,系统不知道用哪个
于是我在anconda的环境中安装了pyinstaller,并在对应prompt中打开cmd界面

看了一下pyinstaller成功装上了,路径必须要有pyinstaller.exe程序。

在对应的环境启动prompt进行打包。

2、pyqt5与pyside6冲突
2.1 打包生成.spec文件
我先打包运行 pyinstaller --onefile --windowed --icon=app1_image1.ico app2.py
但是报错 **attempting to run hook for ‘PySide6’…**这个应该是PySide6与pyqt5冲突导致的
之后我把PySide6删了但是报错,没办法网上找了下资料,最后通过编辑spec文件解决
2.2 编辑spec文件
我是先把之前build和dist文件夹都先删除了,只剩下spec文件然后打开编辑。

找到**excludes=[],**修改为*excludes=[‘PySide6’],
a = Analysis(['app2.py'],pathex=[],binaries=[],datas=[],hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,
)
重新打包解决pyqt5与pyside6冲突问题了
3、打包成功后打不开exe,exe闪退
生成完后exe闪退,我这里的原因是使用了pyqt5的这些包,供参考
import sys
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QHBoxLayout, QSpinBox, QFileDialog, QMessageBox, QStackedWidget, QSizePolicy
from PyQt5.QtGui import QIcon, QPixmap, QFont
from PyQt5.QtCore import Qt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import time
使用 PyQt5 库时,通过 PyInstaller 打包可能会遇到一些特定的问题,例如需要手动指定一些隐藏的导入。下面是详细的步骤
3.1 spec文件添加对应库
找到hiddenimports并添加对应的库
a = Analysis(['simulation_app.py'],pathex=['.'],binaries=[],datas=[('chengzi.ico', '.')],hiddenimports=['PyQt5.QtWidgets','PyQt5.QtGui','PyQt5.QtCore','PyQt5.QtSvg','PyQt5.QtNetwork','PyQt5.QtPrintSupport','PyQt5.QtMultimedia','PyQt5.QtMultimediaWidgets','PyQt5.QtWebEngineWidgets','PyQt5.QtQuick','PyQt5.QtQml'],
3.2 spec文件添加对应图片
我的exe中还有图片,所以也要添加进spec文件找到datas并添加,参考如下格式
datas=[('app1_image1.png', '.'), # 包含 app1_image1.png 文件('result.png', '.'), # 包含 result.png 文件],
3.3 重新打包
显示成功

找到dist文件夹,exe文件成功生成,并且可以正确运行。

相关文章:
pyinstaller打包exe多种失败原因解决方法
pyinstaller打包exe多种失败原因解决方法 目录 pyinstaller打包exe多种失败原因解决方法1、pyinstaller安装有问题1.1 安装pyinstaller1.2 采用anconda的环境启动 2、pyqt5与pyside6冲突2.1 打包生成.spec文件2.2 编辑spec文件 3、打包成功后打不开exe,exe闪退3.1 s…...
x64-linux下在vscode使用vcpkg
1.使用vscode远程连接上对应的linux ,或者直接在图形化界面上使用。 2.安装vcpkg 插件,然后打开插件设置。 注意:defalut和host的主机一定和你自己的主机一致,且必须符合vcpkg三元组格式,其中你可以选择工作台的设置&a…...
运营商二要素核验-手机号机主姓名核验接口-运营商二要素核验接口
通过电信运营商验证手机号码与姓名是否一致。广泛用于实名注册、风控审核等场景,如电商、游戏、直播、金融等需要用户实名认证的场景。支持携号转网核验。 更新周期:联通T1 电信T3 移动T3~5 均为工作日 接口地址: https://www.wapi.cn/api_de…...
C++设计模式-生产者消费者模式
运行在VS2022,x86,Debug下。 32. 生产者消费者模式 解耦生产者和消费者之间的关系,即生产者和消费者只依赖缓冲区,而不相互依赖。应用:多线程并发编程,可以解决生产者和消费者之间的同步问题。实现 生产者…...
VSTO Word.net 如何在另外的工程内添加CustomTaskPane
其他工程肯定是不能直接添加CustomTaskPane面板的,但我们可以在ThisAddIn 中先把对应的panel给新建出来再进行隐藏。步骤如下: 1.在另外工程中定义public static CustomTaskPane currMainForm;把需要隐藏的界面赋值给currMainForm; 2.在另外…...
ROS——自定义话题消息和使用方法
定义Person话题 定义Person发布者 /*** 该例程将发布/person_info话题,自定义消息类型: test_topic::Person*/#include <ros/ros.h> #include <test_topic/Person.h> //包含的头文件,ros相关的头文件,及自定义头文件…...
包装对象类型又是啥啊。。。
包装对象类型 目录 包装对象类型 目录包装对象的概念包装对象类型和字面量类型Objectobject 包装对象的概念 JavaScript 的8种类型之中,undefined和null其实是两个特殊值,object属于复合类型,剩下的五种属于原始类型(primiti…...
服务编排如何选?这几款可视化服务编排引擎,开发团队赶紧收藏
最近看到几款不错的服务编排的产品,先给大家上图看看 扣子: jvs-logic: node-red: jvs-rules: 上述几个产品是最近看到的 几个比较有特点的服务编排的系统。 接下来我对API详细分解下,说明下优点与挑战 服…...
web前端语言框架:探索现代前端开发的核心架构
web前端语言框架:探索现代前端开发的核心架构 在快速发展的web开发领域,前端语言框架的选择对于项目的成功至关重要。它们不仅影响着开发效率,更直接关系到用户体验与网站性能。本文将从四个方面、五个方面、六个方面和七个方面,…...
基于flask的网站如何使用https加密通信
文章目录 内容简介网站目录示例生成SSL证书单独使用Flask使用WSGI服务器Nginx反向代理参考资料 内容简介 HTTPS 是一种至关重要的网络安全协议,它通过在 HTTP 协议之上添加 SSL/TLS 层来确保数据传输的安全性和完整性。这有助于防止数据在客户端和服务器之间传输时…...
软件测试面试题(应届生)
设计员工管理系统的测试用例时,需要考虑系统的各种功能和可能的使用场景,以确保系统的稳定性和准确性。以下是一些设计测试用例的基本步骤和策略: 一、明确测试目标 首先,需要明确测试的目标,例如确保员工信息的准确…...
使用halo的jar方法搭建博客(数据库mysql
ssh连接远程主机 ➜ ~ ssh root 146.56.249.61 第一步.在CentOS 7上安装下载OpenJDK 17的tar.gz文件 wget https://download.java.net/java/GA/jdk17.0.1/2a2082e5a09d4267845be086888add4f/12/GPL/openjdk-17.0.1_linux-x64_bin.tar.gz解压 tar xvf openjdk-17.0.1_linux-…...
Linux - 复盘一次句柄数引发的故障
文章目录 Pre(内核、用户、进程)句柄数设置问题 shell修复 Pre Linux - 深入理解/proc虚拟文件系统:从基础到高级 (内核、用户、进程)句柄数设置 在Linux系统中,进程打开的最大句柄数可以通过多种方式配置…...
2024/06/13--代码随想录算法2/17| 62.不同路径、63. 不同路径 II、343. 整数拆分 (可跳过)、96.不同的二叉搜索树 (可跳过)
62.不同路径 力扣链接 动态规划5步曲 确定dp数组(dp table)以及下标的含义: dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。确定递推公式,dp[i][j] d…...
Android低代码开发 - 直接创建一个下拉刷新列表界面
看了我Android低代码开发 - 让IDE帮你写代码这篇文章的小伙伴,大概都对Dora全家桶开发框架有基本的认识了吧。本篇文章将会讲解如何使用dora-studio-plugin快捷创建一个下拉刷新列表界面。 效果演示 这样直接通过图形界面的方式就创建好了下拉刷新上拉加载空态界面…...
23.Dropout
在深度学习的训练过程中,过拟合是一个常见的问题。为了解决这个问题,研究者们提出了多种正则化技术,其中Dropout技术因其简单而有效的特点,得到了广泛的应用。本文将对Dropout技术的工作原理、主要优点、潜在缺点以及应用场景进行…...
电脑撤回的快捷键是什么?
下面给大家介绍了各种办公应用的撤回以及反向撤回快捷键介绍,在ps、excel中都是可以使用的。 撤回键是ctrl加什么 1、撤销的快捷键是“CtrlZ”,用于取消上一步操作,对与在电脑系统上或软件内的操作均适用。重复按下可以取消多步操作。 2、而…...
每日一题——Python实现PAT甲级1116 Come on! Let‘s C(举一反三+思想解读+逐步优化)五千字好文
一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码点评 时间复杂度分析 空间复杂度分析 总结 我要更强 优化思路 优化…...
spring-data-mongodb版本兼容问题
spring-data-mongodb与mongodb驱动有兼容性问题,不匹配会报NoSuchMethod异常,mongodb的java驱动包在4.0之后由mongodb-java-driver更名为mongodb-driver-sync。 spring-data-mongodb包依赖中有mongodb-driver-core,但缺诸如MongoCollection等…...
Java的核心类库
引言 在Java编程中,熟练掌握常用类与对象操作是开发的基础。Java的核心类库提供了丰富的功能,可以帮助开发者高效地处理各种编程任务。本文将详细介绍Java字符串操作、集合框架、日期与时间处理等内容,并通过图表和表格进行总结与示范。 字符…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
