当前位置: 首页 > news >正文

Python .py文件打包成.exe可执行程序,带托盘图标的可执行文件

Python .py文件打包成.exe可执行程序,带托盘图标的可执行文件

安装pyinstalle

查看是否安装了pyinstaller
已安装

C:\Users\Administrator>pip show pyinstaller
Name: pyinstaller
Version: 6.12.0
Summary: PyInstaller bundles a Python application and all its dependencies into a single package.
Home-page: https://www.pyinstaller.org/
Author: Hartmut Goebel, Giovanni Bajo, David Vierra, David Cortesi, Martin Zibricky
Author-email:
License: GPLv2-or-later with a special exception which allows to use PyInstaller to build and distribute non-free programs (including commercial ones)
Location: C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages
Requires: altgraph, packaging, pefile, pyinstaller-hooks-contrib, pywin32-ctypes, setuptools
Required-by:

未安装,则会收到类似于Could not find installation information for package 'pyinstaller’的提示信息
安装

打包

pip install pyinstaller

使用pyInstaller生成可执行文件,到需要生成文件的路径下,如果你的应用名为test.py,可执行下列命令:

pyinstaller --onefile test.py
#--onefile选项表示将所有依赖打包进一个单独的可执行文件中。

打包完成后,会在dist目录下生成一个可执行文件
如果不需要托盘图标,就可以用了

托盘图标设置
让程序在右下角显示托盘图标,需要在程序中添加相应的代码。以PyQt5介绍如何设置托盘图标
导入

import sys
from PyQt5.QtWidgets import QApplication, QSystemTrayIcon, QMenu, QAction
from PyQt5.QtGui import QIcon

创建托盘图标

    app = QApplication(sys.argv)
    icon = QSystemTrayIcon(QIcon('A1.png'), app)
    icon.show()
    menu = QMenu(app)
    exit_action = QAction('Exit', app)
    exit_action.triggered.connect(app.quit)
    menu.addAction(exit_action)
    icon.setContextMenu(menu)
    sys.exit(app.exec_())

A1.png是你的托盘图标文件路径。这段代码会创建一个托盘图标,并添加一个退出菜单项。

在PyInstaller打包时添加托盘图标
在这里插入图片描述
重新运行pyinstaller A1.spec命令进行打包

常见问题解决方法

打包后的程序无法显示托盘图标

这可能是由于托盘图标文件没有正确打包进去导致的。请确保在spec文件中添加了正确的托盘图标文件路径。

打包后的程序在Windows 7下无法显示托盘图标

这可能是由于Windows 7系统对托盘图标的支持问题导致的。可以尝试使用其他托盘图标库,如pyqt5-trayicon

相关文章:

  • MySQL-事务
  • 【深度强化学习】置信域策略优化(TRPO)
  • Python的那些事第二十五篇:高效Web开发与扩展应用实践FastAPI
  • 【操作系统】操作系统概述
  • vue3 子组件属性响应性丢失分析总结(四)
  • TMS320F28335二次bootloader在线IAP升级
  • 在windows10上,部署DeepSeek模型在本地电脑
  • 【钱包】【WEB3】【Flutter】一组助记词如何推导多个账号钱包
  • Unity 淡入淡出
  • agent和android怎么结合:健康助手,旅游助手,学习助手
  • 【插入排序】Insert_Sort
  • 电机控制::软件架构::微型软件架构
  • 基于开源Odoo、SKF Phoenix API与IMAX-8数采网关的圆织机设备智慧运维实施方案 ——以某纺织集团圆织机设备管理场景为例
  • I²C简介
  • OSPF协议五种网络类型中DR和BDR选举说明
  • Linux内核实时机制4 - 实时改造优化 - PREEMPT_RT方案
  • Linux学习笔记之深入理解进程调度
  • 3、cadence从零开始让一个VCO起振——如何调频
  • 复现log4j2的jndi注入成功反弹shell
  • SQL进阶技巧:如何统计用户跨端消费行为?
  • 新城市志|上海再攻坚,营商环境没有最好只有更好
  • 47本笔记、2341场讲座,一位普通上海老人的阅读史
  • 国家主席习近平在莫斯科出席红场阅兵式
  • 高盛上调A股未来12个月目标点位,沪深300指数潜在回报15%
  • 马克思主义理论研究教学名师系列访谈|鲍金:给予学生一碗水、自己就要有一桶水
  • 赵乐际:深入学习贯彻习近平生态文明思想,推动森林法全面有效贯彻实施