网站首页 > 技术文章 正文
PyInstaller打包工具 把Python程序变成exe好方便呀
亲爱的小伙伴们好呀~今天来跟大家分享一个超级实用的工具:PyInstaller!是不是经常想把自己写的Python程序分享给朋友,但又担心对方电脑没装Python环境呢?有了PyInstaller,我们就能轻松把Python程序打包成exe文件,其他小伙伴双击就能运行啦!让我们一起来学习吧!

1. PyInstaller是什么呀?
PyInstaller是一个超级棒的Python打包工具,它能帮我们把Python程序和所需的所有依赖都打包到一起,生成一个独立的可执行文件。这样的话,就算别人电脑上没有安装Python,也能运行我们的程序呢!
小贴士:PyInstaller支持Windows、Linux和MacOS哦,今天我们主要介绍Windows下的使用方法~
2. 安装PyInstaller
首先我们需要安装PyInstaller,只需要在命令行输入下面的命令就可以啦:
pip install pyinstaller
3. 来试试最简单的打包吧!
让我们先准备一个简单的Python程序,我把它保存为hello.py:
print("欢迎来到我的程序!")
name = input("请输入你的名字:")
print(f"你好啊,{name}!希望你玩得开心~")
input("按回车键退出...")
然后,我们只需要在命令行里输入:
pyinstaller -F hello.py
这里的-F参数表示我们要生成单个exe文件,这样分享起来最方便啦!
4. 让程序更漂亮一点
如果想让程序有个漂亮的图标,我们可以使用-i参数:
pyinstaller -F -i my_icon.ico hello.py
注意事项:图标文件必须是.ico格式的哦!
5. 进阶打包技巧
有时候我们的程序会用到一些额外的文件,比如图片、配置文件等,这时就需要用到--add-data参数啦:
# 假设我们的程序需要读取配置文件
import json
with open('config.json', 'r', encoding='utf-8') as f:
config = json.load(f)
print(f"读取到的配置:{config}")
打包命令这样写:
pyinstaller -F --add-data "config.json;." my_program.py
小贴士:这里的.表示把文件放在程序的根目录下,分号前是源文件路径,分号后是目标路径。
6. 常见问题小贴士
- 如果程序运行闪退,记得在代码最后加上input()语句哦~
- 打包后的文件会在dist目录下,build目录可以删掉的~
- 如果打包失败,可以试试加上--clean参数清理临时文件:
pyinstaller -F --clean hello.py
7. 一些实用的命令行参数
- -w:不显示控制台窗口(适合GUI程序)
- -c:显示控制台窗口(默认值)
- --name:指定生成的exe文件名
- --version-file:添加版本信息文件
来看个完整的例子:
pyinstaller -F -w -i my_icon.ico --name "我的程序" hello.py
练习小作业
试试把下面这个可爱的小程序打包成exe吧:
import time
def countdown():
print("?倒计时开始啦?")
for i in range(5, 0, -1):
print(f"{i}...")
time.sleep(1)
print("?倒计时结束,棒棒哒!?")
if __name__ == '__main__':
countdown()
input("按回车键退出...")
小伙伴们,今天的Python学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问我哦。祝大家学习愉快,Python学习节节高!
猜你喜欢
- 2025-01-07 如何用Python程序将几十个PDF文件合并成一个PDF?其实只要这四步
- 2025-01-07 总结90条写Python程序的建议
- 2025-01-07 编写python程序求1~ 2012之间所有能被17或31整除的数的立方和。
- 2025-01-07 用ChatGpt编写python程序
- 2025-01-07 如何让你的Python程序,定时定点地去执行任务?
- 2025-01-07 编写python程序计算n个并联电阻的总电阻值。
- 2025-01-07 学姐的小建议,用Python写一个简单的日记本程序,记录生活点滴哦
- 2025-01-07 deepin os下使用Geany编写python程序
- 2025-01-07 包装600个变形金刚,用Python来编写相应的程序
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)