首页 > Python资料 博客日记
python的PyInstaller,打包成windows可执行的exe(细致版)
2025-01-14 01:00:08Python资料围观26次
在开发 Python 应用程序时,有时我们需要将脚本打包成独立的可执行文件(.exe),以便于在没有安装 Python 环境的计算机上运行。本文将介绍如何使用 PyInstaller 工具将 Python 本打包成 Windows 可执行文件。
1. 安装 PyInstaller
首先,你需要安装 PyInstaller。可以通过 pip 来安装:
pip install pyinstaller
2. 准备你的 Python 脚本
假设你有一个名为 myapp.py 的 Python 脚本,内容如下:
import tkinter as tk
def on_button_click():
label.config(text="Hello, World!")
root = tk.Tk()
root.title("My App")
label = tk.Label(root, text="Welcome to My App")
label.pack(pady=20)
button = tk.Button(root, text="Click Me", command=on_button_click)
button.pack(pady=10)
root.mainloop()
这个脚本使用 tkinter 库创建了一个简单的 GUI 应用程序。
3. 使用 PyInstaller 打包脚本
3.1 基本打包
打开命令行或终端,导航到包含 myapp.py 的目录,然后运行以下命令:
pyinstaller myapp.py
这将生成一个 dist 目录,其中包含可执行文件和其他必要的文件。
3.2 单文件模式
为了生成一个单独的可执行文件,可以使用 --onefile 参数:
pyinstaller --onefile myapp.py
3.3 设置图标
如果你希望给生成的可执行文件设置图标,可以使用 --icon 参数。假设你有一个名为 myicon.ico 的图标文件:
pyinstaller --onefile --icon=myicon.ico myapp.py
3.4 隐藏控制台窗口
对于 GUI 应用程序,你可能不希望显示控制台窗口。可以使用 --noconsole 参数来隐藏控制台窗口:
pyinstaller --onefile --noconsole --icon=myicon.ico myapp.py
3.5 添加数据文件
如果你的应用程序需要额外的数据文件,比如配置文件或资源文件,可以使用 --add-data 参数。例如,假设你有一个名为 config.ini 的配置文件:
pyinstaller --onefile --noconsole --icon=myicon.ico --add-data "config.ini;." myapp.py
这里的 config.ini;. 表示将 config.ini 文件复制到可执行文件所在目录的根目录下。
4. 使用 .spec 文件进行高级配置
对于更复杂的项目,你可能需要更多的控制权。PyInstaller 提供了 .spec 文件来配置构建过程。
4.1 生成 .spec 文件
首次运行 PyInstaller 时,它会自动生成一个 .spec 文件。例如:
pyinstaller myapp.py
这将在当前目录下生成一个 myapp.spec 文件。
4.2 编辑 .spec 文件
打开 myapp.spec 文件,你可以看到类似以下内容:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['myapp.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='myapp',
debug=False,
strip=False,
upx=True,
console=False,
icon='myicon.ico',
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='myapp',
)
你可以在这个文件中进行各种配置,例如添加数据文件、排除不必要的模块等。
4.3 使用 .spec 文件构建
保存并关闭 .spec 文件后,使用以下命令进行构建:
pyinstaller myapp.spec
5.创建虚拟环境,减少打包文件文件大小
一般打包时,会将一些不必要的库顺带一并打包进程序中,这会造成打包后的文件非常大,因此可以通过安装一个虚拟环境来进行打包。
复制这个目录。
然后,我们需要安装两个依赖包:
pip install virtualenv
pip install virtualenvwrapper-win
如果网络不佳,可使用国内的镜像库进行安装:
pip install virtualenv -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package
然后创建虚拟环境:
mkvirtualenv -p="C:\Users\jyw\AppData\Local\Programs\Python\Python311\python.exe" pyenv311
打开这个虚拟环境:
workon pyenv311
可以看到里面只有基本的库。
然后我们去运行py文件,安装缺失的必要库,运行成功后再打包即可。
若要删除虚拟环境,使用 rmvirtualenv 命令删除虚拟环境:例如,要删除名为 pyenv311 的虚拟环境,可以运行以下命令:
rmvirtualenv pyenv311
不明白可以私聊我哈(哥哥姐姐也看到这里了,麻烦咚咚咚,动动小手给个关注收藏小三连,有独特软件需求的可以偷偷私信或者留言我哈,也看到这里了,希望有条件的哥哥姐姐们简单支持下,我将会继续免费分享更多实用的内容和寻找免费好用的项目软件,大家的支持是我前进的强大动力!!!)
6. 测试生成的可执行文件
构建完成后,进入 dist 目录,运行生成的可执行文件:
cd dist
myapp.exe
确保应用程序能够正常运行,并且所有功能都能正常使用。
7. 分发可执行文件
将 dist 目录中的可执行文件及其依赖文件(如果有)打包成一个压缩包,发给需要用的人即可啦!!
标签:
相关文章
最新发布
- 基于人脸识别的校园课堂考勤管理系统设计与实现(Python)
- Python的13款Web框架对比(比较全!建议收藏!)
- 【python】Matplotlib库安装教程
- Python 青铜宝剑十六维,破医疗数智化难关(上)
- 【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
- Python 条件语句详解 if - elif-else
- C语言&Python&Bash:空白(空格、水平制表符、换行符)与转义字符
- 计算机毕业设计Python中华古诗词知识图谱可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析模型 自然语言处理NLP 机器学习 深度学习
- Python | 基于支持向量机(SVM)的图像分类案例
- 如何在Python中安装GDAL库(gdal)
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程