Python脚本打包为EXE可执行文件的完整指南:PyInstaller安装与使用详解

咖啡半糖
咖啡半糖
发布时间:2026-10-13| 3人浏览过
原创

本文详细介绍如何使用PyInstaller将Python脚本打包为Windows可执行文件。涵盖从pip安装、基础命令到常用参数(如-F、-w、-p)的具体用法,并通过游戏实例演示打包过程,解决依赖路径、窗口显示及文件体积等问题,帮助开发者轻松实现Python应用的跨机器分发。

PyInstaller简介与版本支持

一、PyInstaller简介

PyInstaller是一个用于将Python脚本打包成独立可执行文件的工具,它使得程序可以在没有安装Python环境的计算机上直接运行。

当前最新版本为PyInstaller 3.1.1,支持Python 2.7及Python 3.3及以上版本。该工具兼容Windows、Mac和Linux操作系统。需要注意的是,它不支持跨平台编译,即在Windows下生成的exe文件仅能在Windows系统中运行,而在Linux下生成的二进制文件也仅适用于Linux环境。

Windows环境下的安装步骤

二、在Windows环境下安装PyInstaller

在Windows系统中,可以通过执行命令pip install pyinstaller来完成安装。需要注意的是,PyInstaller在Windows下运行依赖于PyWin32库。如果在通过pip安装PyInstaller时未检测到PyWin32,系统会自动安装pypiwin32作为替代方案。

当命令行输出“Successfully installed pyinstaller-3.1.1 pypiwin32-219”时,即表示安装成功。

打包命令与常用参数详解

三、打包操作流程

打包生成的应用程序不包含原始源代码,但会将脚本编译后的.pyc文件包含在内。

其基本语法格式为:pyinstaller options myscript.py,其中options代表各种可选参数。

以下是常用的可选参数列表:

–onefile:将打包结果合并为单个可执行文件。 –onedir:将所有结果打包到一个文件夹中,该文件夹包含一个可执行文件以及运行所需的依赖文件(此为默认模式)。 –paths=DIR:指定导入模块的搜索路径。 –distpath=DIR:指定打包结果文件的输出目录。 –specpath=DIR:指定生成的.spec配置文件存放路径。 –windowed:使用Windows子系统执行,运行时无需打开命令行窗口(仅对Windows有效)。 –nowindowed:使用控制台子系统执行,运行时会显示命令行窗口(此为默认模式,仅对Windows有效)。 –icon=<FILE.ICO>:将指定的.ico文件添加为可执行文件的图标资源(仅对Windows有效)。

例如,执行命令pyinstaller --paths="D:\Queena" guess_exe.py即可指定特定路径进行打包。

Windows下打包实例演示

四、Windows下的实际打包实例

假设已编写好游戏脚本guess_exe.py,其核心代码逻辑如下:


__author__ = 'zhou'
# -*- coding:utf-8 -*-
# 摇3次骰子,当总数total,3<=total<=10时为小,11<=total<=18为大
import random
import time
def enter_stake(current_money):
 '''输入小于结余的赌资及翻倍率,未考虑输入type错误的情况'''
 stake = int(input('How much you wanna bet?(such as 1000):'))
 rate = int(input("What multiplier do you want?你想翻几倍?(such as 2):"))
 small_compare = current_money < stake * rate
 while small_compare == True:
 stake = int(input('You has not so much money ${}!How much you wanna bet?(such as 1000):'.format(stake * rate)))
 rate = int(input("What multiplier do you want?你想翻几倍?(such as 2):"))
 small_compare = current_money < stake * rate
 return stake,rate
def roll_dice(times = 3):
 '''摇骰子'''
 print('<<<<<<<<<< Roll The Dice! >>>>>>>>>>')
 points_list = []
 while times > 0:
 number = random.randrange(1,7)
 points_list.append(number)
 times -= 1
 return points_list
def roll_result(total):
 '''判断是大是小'''
 is_big = 11 <= total <= 18
 is_small = 3 <= total <= 10
 if is_small:
 return 'Small'
 elif is_big:
 return 'Big'
def settlement(boo,points_list,current_money,stake = 1000,rate = 1):
 '''结余'''
 increase = stake * rate
 if boo:
 current_money += increase
 print('The points are ' + str(points_list) + ' .You win!')
 print('You gained $' + str(increase) + '.You have $' + str(current_money) + ' now.' )
 else:
 current_money -= increase
 print('The points are ' + str(points_list) + ' .You lose!')
 print('You lost $' + str(increase) + '.You have $' + str(current_money) + ' now.' )
 return current_money
def sleep_second(seconds=1):
 '''休眠'''
 time.sleep(seconds)
# 开始游戏
def start_game():
 '''开始猜大小的游戏'''
 current_money = 1000
 print('You have ${} now.'.format(current_money))
 sleep_second()
 while current_money > 0:
 print('<<<<<<<<<<<<<<<<<<<< Game Starts! >>>>>>>>>>>>>>>>>>>>')
 your_choice = input('Big or Small: ')
 choices = ['Big','Small']
 if your_choice in choices:
 stake,rate = enter_stake(current_money)
 points_list = roll_dice()
 total = sum(points_list)
 actual_result = roll_result(total)
 boo = your_choice == actual_result
 current_money = settlement(boo,points_list,current_money,stake,rate)
 else:
 print('Invalid input!')
 else:
 sleep_second()
 print('Game Over!')
 sleep_second(2)
if __name__ == '__main__':
 start_game()

接下来,在命令行中切换到guess_exe.py所在的目录,并输入以下打包命令:

pyinstaller --onefile --nowindowed --icon="D:\Queena\PyCharmProjects\dist1\computer_three.ico" guess_exe.py


执行上述命令后,当前目录下会生成build文件夹、dist文件夹以及一个.spec配置文件。其中,dist文件夹内包含了最终生成的guess_exe.exe可执行文件。

[外链图片转存失败(img-NSV511rc-1562767762570)(https://upload-images.jianshu.io/upload_images/6152595-56dc5aad9152513e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

详细操作指南与参数注意事项

1、首先确保已安装pip,随后执行pip install pyinstaller进行PyInstaller的安装。

(注:由于作者之前已安装过pyinstaller,为方便演示进行了卸载,不确定这是否会影响最终显示效果。但确认安装成功后,命令行会提示“Successfully installed pyinstaller”。)

2、定位到pyinstaller.exe所在的文件夹(通常位于Python安装目录下的“scripts”文件夹中)。

(温馨提示:在cmd命令行中使用Tab键可以实现命令补全功能,提高输入效率。)

3、在命令后添加需要转换的Python文件路径(两者之间需保留空格)。

若在pyinstaller.exe命令后加上-F参数,则会将应用打包为一个单独的exe文件(文件体积相对较大);若不加-F,则会生成包含各种库文件的文件夹。若加上-w参数,则打包为不带cmd窗口的exe程序;若不加-w,运行时会出现cmd窗口。(具体是否添加这些参数可根据个人喜好决定。)

4、添加-F参数的效果示例

未添加-F参数的效果示例

未添加-w参数的效果示例

(如果添加了-w参数,则运行时不会出现后面的黑色命令行窗口。)

1、关于-F指令的说明

请注意指令区分大小写,此处必须为大写-F。使用-F指令可以将应用打包成一个独立的exe文件;如果不使用该指令,则打包结果是一个包含各种dll和依赖文件的文件夹。

2、关于-p指令的说明

该指令后可以增加pyinstaller搜索模块的路径。由于应用打包涉及众多模块,用户可以手动添加所需路径。不过经过笔者测试,site-packages目录下的模块通常可以被自动识别,因此一般无需手动添加路径。

简易Hello World打包示例

补充:如何将Python的.py文件转换为可执行的.exe文件。

首先,我编写了一个简单的print(“hello,world”).py文件,并将其命名为hello.py,保存在电脑C盘的C:\Users\ly目录下,如图所示。

ps:建议尽量将源文件保存在该文件夹下。如果选择其他盘的文件夹,生成的.exe的dist文件夹也会出现在该C盘路径下;而且如果保存在其他盘下,有时可能会出现错误,导致打包不成功。

              

 

利用pip安装Python的工具库pyinstaller。

pip install pyinstaller

安装成功后的界面如下:

在命令窗口中输入:pyinstaller -F C:\Users\ly\hello.py

注意:F一定要大写。

执行完毕后,可以在该路径下的dist文件夹中找到与源文件同名的hello.exe文件。

总结

到此这篇关于Python脚本导出为exe程序的方法的文章就介绍到这了,更多相关Python导出exe程序内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。