python的PyInstaller,打包成windows可执行的exe(细致版)

在开发 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 virtualenvpip 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 distmyapp.exe

确保应用程序能够正常运行,并且所有功能都能正常使用。

7. 分发可执行文件

将 dist 目录中的可执行文件及其依赖文件(如果有)打包成一个压缩包,发给需要用的人即可啦!!

参考资源链接:[Python Selenium脚本打包EXE执行文件指南](https://wenku.csdn.net/doc/2t25g8c2uz?utm_source=wenku_answer2doc_content) 为了解决如何将Python脚本通过Selenium自动化工具控制Chrome浏览器,并使用pyinstaller打包Windows可执行exe文件的问题,推荐参考《Python Selenium脚本打包EXE执行文件指南》。该指南详细介绍了实现这一过程的每一步,是你的理想资源。 首先,确保你的开发环境已经安装了Python,并且配置了Selenium库以及对应的`chromedriver.exe`。然后编写自动化脚本,如示例中的`run.py`,该脚本将会使用Selenium来启动Chrome浏览器,并执行一系列自动化操作。 接下来,利用`pyinstaller`模块来打包Python脚本。打开命令行工具,切换到脚本所在的目录,然后执行以下命令:`pyinstaller -F --icon=tp.ico run.py`。这里的`-F`参数指示pyinstaller单个可执行文件,而`--icon=tp.ico`则是指定生exe文件图标。 打包后,`pyinstaller`会在`dist`文件夹中生`run.exe`文件。这就是可以在没有Python环境的Windows系统上运行的可执行文件。但是要注意,由于`chromedriver.exe`无法直接打包exe文件,你需要确保在运行打包后的exe文件时,`chromedriver.exe`与exe文件处于同一目录下。 通过这些步骤,你可以将Python编写的自动化脚本打包exe文件,便于分发和使用。这份指南不仅涵盖了从脚本编写到打包的完整流程,还包括了如何处理可能出现的问题和挑战,对于希望提升自动化脚本分发效率的开发者来说,是一份不可多得的参考资料。 参考资源链接:[Python Selenium脚本打包EXE执行文件指南](https://wenku.csdn.net/doc/2t25g8c2uz?utm_source=wenku_answer2doc_content)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小软件大世界

谢谢支持,我将会更加努力的寻找

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值