Python 程序编译:Pyinstaller库的使用

简介: Pyinstaller 是一个第三方库,它能够在Windows、Linux、Mac OS X等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理。PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在Windows、Mac OS X和Linux上使用,但是并不是跨平台的,而是说你要是希望打包成.exe文件,需要在Windows系统上运行 PyInstaller 打包。
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页: 小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 程序编译:Pyinstaller库的使用

1.Pyinstaller库简介

Pyinstaller 是一个第三方库,它能够在 WindowsLinuxMac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理。

PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 WindowsMac OS XLinux上使用,但是并不是跨平台的,而是说你要是希望打包成.exe文件,需要在 Windows系统上运行 PyInstaller 进行打包工作;打包成mac app,需要在Mac OS上使用。

Pyinstaller 库需要通过pip指令安装:

pip install pyinstaller
PyInstaller 库会自动将 PyInstaller 命令安装到 Python 解释器 目录中,与 pip 或 pip3 命令路径相同,因此可以直接使用。

2.Pyinstaller库常用命令

Pyinstaller库常用命令只有一个,语法如下:
pyinstaller 选项 .py文件路径
Pyinstaller 支持的常用选项如下:
选项 描述
-h,--help 查看该模块的帮助信息
-F,-onefile 产生单个的可执行文件
-D,--onedir 产生一个目录(包含多个文件)作为可执行程序
-a,--ascii 不包含 Unicode 字符集支持
-d,--debug 产生 debug 版本的可执行文件
-w,<br/>--windowed,<br/>--noconsole 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c,<br/>--nowindowed,<br/>--console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR,<br/>--out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR,<br/>--path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。<br/>也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
-n NAME,<br/>--name=NAME 指定项目(产生的 spec)名字。<br/>如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字
-i 选择图标
更多选项可以通过 pyinstaller -h命令查看。

3.程序编译实例

这里我们选择之前海龟绘图中绘制小樱花树的程序案例进行演示。
先让我们打开源文件所在文件夹:
文件夹1

鼠标右键空白处选择在终端打开:
文件夹2

在PowerShell中输入相应的pyinstaller命令:
控制台1

回车,待命令执行完毕:
控制台2

在刚刚的文件夹中,我们就能看到多出来很多东西:
文件夹3

这里我们使用了-F选项,也就是编译成单个的可执行文件,在生成的dist文件夹中的.exe文件就是我们要的可执行文件了:
文件夹4

让我们双击文件就可以看到运行了:
小樱花树

编译出来的.exe文件运行不再需要依赖Python环境,快发给你的其他专业朋友玩玩吧!


4.注意事项

4.1 包文件过大怎么办

利用 PyInstaller 对指定的的脚本打包时,会先分析脚本所依赖的其他脚本,然后根据导包路径去查找,把所有相关的脚本收集起来,包括 Python解析器,然后根据你的命令参数可分别生成文件夹,或者打包成一个可执行文件。

为了避免 Pyinstaller 打包后程序或文件夹过大,在引用包时,尽量使用 from ... import ...语句,而不是直接使用import导入整个库,这样可以一定程度减小生成文件的大小。

4.2 双击运行程序一闪而过怎么办

如果是简单的没有图形化界面,仅仅在控制台上运行的程序,可能会出现运行可执行程序后出现一闪而过的情况,这种情况是因为 Windows控制台在执行完程序后会自动关闭控制台窗口。

这种情况我们可以通过以下几种方式解决:

  1. 在程序末尾使用input()函数捕捉输入,自己主动输入结束程序。
  2. cmd下运行.exe文件,从而通过cmd看到效果。
  3. 导入os模块,在程序末尾添加os.system("pause")来防止控制台关闭。
目录
相关文章
|
4天前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
44 20
|
1月前
|
XML JSON 数据库
Python的标准库
Python的标准库
170 77
|
10天前
|
存储 NoSQL 数据库连接
在Python程序中实现LevelDB的海量key的分批次扫描
通过本文的步骤,您可以在Python程序中实现对LevelDB海量key的分批次扫描。这样不仅能够有效地管理大规模数据,还可以避免一次性加载过多数据到内存中,提高程序的性能和稳定性。希望这篇指南能为您的开发工作提供实用的帮助。
53 28
|
29天前
|
安全 API C语言
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
73 6
|
1月前
|
XML JSON 数据库
Python的标准库
Python的标准库
52 11
|
1月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
74 8
|
23天前
|
Shell 开发工具 Python
如何在vim里直接运行python程序
如何在vim里直接运行python程序
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。