《PyInstaller打包实战指南》第二节 PyInstaller的两种打包模式

第二节 PyInstaller的两种打包模式

1. 文件夹模式打包

2. 单文件模式打包

3. build, dist和spec文件(夹)简介


PyInstaller可以把python程序打包成多个文件并放入一个文件夹中,也可以把程序只打包成一个可执行文件。通常我们比较倾向后者,因为拷贝起来更加方便,使用起来也更加简单。在该小节中,笔者会介绍如何用两种方式进行打包,并且会介绍下打包后生成的三个文件(夹)。

 

笔者知道学完本节的话,部分读者可能会立即去打包,但是打包可能会出错,或者是运行出错。别急,后面章节会讲怎么解决错误的。

 

1. 文件夹模式打包

现在在桌面新建一个文件夹名为la_vie,文件夹中有一个名为belle的py文件(笔者在之后的讲解中都会拿这个py文件来进行打包演示):

 

我们在belle.py文件中输入以下代码:

import os

print('Hello World')

os.system('pause')    # 暂停程序,好看清输出内容

我们可以打开命令行窗口,然后输入pyinstaller C:/Users/Desktop/la_vie/belle.py (不推荐)

或者可以直接cd到项目路径下,输入pyinstaller belle.py即可打包:

注:cd命令其实比较麻烦,更快的方法是直接在项目文件夹中同时按住shift键和鼠标右键,选择在“此处打开命令行窗口“(或者是"在此处打开Powershell窗口"),之后在弹出的命令行窗口中我们发现路径已经是正确的了。笔者在讲解中将都使用该方法,省去cd命令。

 

打包成功的话,我们可以在最后看到类似这样的语句"Building...completed successfully":

 

接着我们发现项目文件夹下多出了三个文件(夹),名称分别是build,dist和belle.spec,而我们需要的可执行文件就在dist文件夹中。点击进入dist文件夹后,会发现有一个belle文件夹 ,这个文件夹就是我们需要的了——其中有可执行文件以及相关依赖。

然后我们双击打开exe可执行文件,在弹出的"黑框"中(也就是命令行窗口)出现了"Hello World"字符串,程序运行成功。

注:打包成功跟运行成功是两个概念。前者指成功生成可执行文件,而后者指可执行文件运行没有问题,打包成功不代表程序运行没问题。

 

2. 单文件模式打包

所谓单文件模式打包就是打包后在dist文件夹中只有一个可执行文件,全部的依赖文件都已经被打包进去了。这样很方便,对不怎么懂编程或者电脑操作不是很熟练的客户来讲也比较友好。

要把belle.py打包成一个文件,我们只需要加一个-F命令:

pyinstaller -F belle.py

打包成功后,我们在dist文件夹中双击生成的可执行文件,同样弹出黑框,并显示”Hello World“字符串:

注:虽然单文件模式打包后的结果比较友好,但通常遇到的问题和麻烦比文件夹模式打包要更多,笔者会在之后章节进行讲解。

 

3. build, dist和spec文件(夹)简介

打包结束后,PyInstaller会在build文件夹中生成一些日志文件以及工作文件,而在dist文件夹中的是已经打包好的文件。spec文件中存储着打包时所用的命令以及要打包的相关文件,它的作用就是告诉PyInstaller如何来进行处理。

这里就简单讲下这三个文件(夹)的作用,笔者会在”PyInstaller打包进阶“中更深入讲解。

 

如果现在要给其他人使用:

  • 若用文件夹模式打包,读者需要把打包好的整个belle文件夹发过去,而你的朋友或者客户只需要点击文件夹中的belle.exe可执行文件即可运行程序。
  • 若用单文件模式打包,读者把dist文件夹下的belle.exe可执行文件发过去即可

build文件夹和spec文件跟程序运行没有关系,读者可以删掉。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

la_vie_est_belle

谢谢支持

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

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

打赏作者

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

抵扣说明:

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

余额充值