java打包成可执行文件_《PyInstaller打包实战指南》第二节 PyInstaller的两种打包模式...

603e3538c32730bd7c2f2af5a55c0ab5.png

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

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

1. 文件夹模式打包

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

7b6350728b5b413aa9de096a0d99aa28.png

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

import 

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

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

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

54728b341cb6031b7cda6470101350e3.png

e304142900d2d5ece52a889c464317af.png

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

b9082fc525b6ca685e336e979374984e.png

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

929a39542bef293df6e893271a4a40b4.png

1c6f4bd0374d707ab0dfa421095a9f68.png

0abc7d2b76221c1de9e12bde48592a77.png

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

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

2. 单文件模式打包

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

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

pyinstaller -F belle.py

a14a8b7aada6ca961f390e27a6faa654.png

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

a68ec5f226c303315341b5fdb7a3531a.png

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值