如何用Pyinstaller打包显示版本号的exe程序

本文介绍如何使用Pyinstaller工具将Python程序打包成带有版本号的EXE文件,详细步骤包括抓取版本信息、编辑版本文件及最终的打包命令。通过此方法,可以为发布的应用程序提供更专业的外观。
部署运行你感兴趣的模型镜像

如何用Pyinstaller打包显示版本号的exe程序

参考链接:
https://zhuanlan.zhihu.com/p/20731500
https://blog.youkuaiyun.com/hurray123/article/details/48521845

关于pyinstaller的用法可以在命令行下输入pyinstaller查看:
在这里插入图片描述
重点来看下 –version-file FILE选项的用法。

  • 获取FILE文件:
    • 1.找一个有版本号等属性的exe程序(我以有道词典为例,文件路径是C:\Users\Administrator.S0YPIQL4VO5OLCV\AppData\Local\youdao\dict\Application)
    • 2.输入命令pyi-grab_version YoudaoDict.exe,如下图,则表示生成版本文件成功,回到YoudaoDict.exe所在文件夹会看到file_version_info.txt文件:在这里插入图片描述
    • 3.新建文件,然后把file_version_info.txt的内容全部拷贝到过来,然后根据自己需要修改内容即可;(最好是新建一个文件,因为命令生成的是txt文件,编码格式有差别,跳过这一步直接打包会报错)在这里插入图片描述
    • 4.输入命令打包程序pyinstaller -w --version-file version dataToSQL.py,如下图:在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 使用 PyInstaller 打包并实现自动更新 为了使通过 PyInstaller 打包的 Python 应用程序具备自动更新功能,可以采用多种方法和技术来实现这一目标。以下是几种常见的解决方案: #### 1. 利用在线资源库进行版本控制和分发 一种常见的方式是利用 GitHub 或其他代码托管平台作为应用版本管理工具。每次发布新版本时,在线仓库会存储最新的二进制文件以及版本号。 当客户端启动时,它可以通过网络请求检查服务器上的最新版本信息并与本地安装的应用版本对比。如果发现有新的可用版本,则提示用户下载或后台静默替换旧版文件[^1]。 ```python import requests from packaging.version import parse as parse_version def check_for_updates(current_version, update_url='https://api.github.com/repos/user/repo/releases/latest'): try: response = requests.get(update_url).json() latest_tag_name = response['tag_name'] if parse_version(latest_tag_name.lstrip('v')) > parse_version(current_version): download_link = next((asset['browser_download_url'] for asset in response['assets']), None) return { 'is_update_available': True, 'latest_version': latest_tag_name, 'download_link': download_link } except Exception as e: print(f"Error checking updates: {e}") return {'is_update_available': False} ``` #### 2. 集成第三方框架简化开发过程 对于更复杂的需求场景,还可以考虑集成专门用于构建桌面端软件升级系统的开源项目如 `Esky` 或者商业产品像 Sparkle (macOS专属),这些库提供了更加完善的API接口支持开发者快速搭建起稳定可靠的OTA服务[^2]. - **Esky**: 支持Windows/Linux/Mac OS X等多个操作系统;能够处理不同架构下的EXE/DLL动态链接库兼容性问题。 - **Sparkle**: 主要面向苹果生态内的Mac App Store外发行渠道提供增量补丁推送机制。 #### 3. 自定义简易方案满足特定业务逻辑需求 针对某些特殊应用场景可能并不适合上述通用型做法,这时就需要设计一套简单易行又贴合实际状况的工作流了。比如创建一个小型HTTP API用来接收来自各处部署节点的心跳信号,并返回当前环境所需的操作指令集给到前端调用方去执行相应动作完成整个流程闭环操作[^3]. ```bash # Shell脚本片段展示如何自动化拉取远程仓库中的指定标签release资产至临时目录再覆盖原路径下同名实体达到无缝切换目的 #!/bin/bash APP_NAME="myapp" TEMP_DIR="/tmp/${APP_NAME}_update" rm -rf ${TEMP_DIR} && mkdir -p ${TEMP_DIR} cd ${TEMP_DIR} curl -LJO $(check_for_updates | jq -r '.download_link') unzip *.zip -d . mv ./dist/* /path/to/installation/folder/ echo "Update completed successfully!" ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值