打包Python程序文件:pyinstaller实现

简介: 本文介绍基于Python语言中的pyinstaller模块,将写好的.py格式的Python代码及其所用到的所有第三方库打包,生成.exe格式的可执行文件,从而方便地在其他环境、其他电脑中直接执行这一可执行文件的方法。

本文介绍基于Python语言中的pyinstaller模块,将写好的.py格式的Python代码及其所用到的所有第三方库打包,生成.exe格式的可执行文件,从而方便地在其他环境其他电脑中直接执行这一可执行文件的方法。


有时,我们希望将自己电脑上的某个Python文件发到另一台电脑上使用;而如果这个Python文件中包含了大量的第三方库,那么首先不仅需要保证另一台电脑上有Python环境,而且还需要配置好这些第三方库——这无疑是比较麻烦的。


但是,我们可以选择将Python文件(及其所包含的全部第三方库)打包为.exe文件,然后发送给其他电脑并直接加以执行;而这个打包的过程,基于Python语言中的pyinstaller模块,就可以非常方便地进行。本文就介绍一下这个打包的具体方法。


但是需要注意,pyinstaller模块打包后的可执行文件是不可以跨平台使用的——例如,在Windows上将一个Python代码文件打包,得到的可执行文件就只能在Windows上使用,而在LinuxMac上是不可以使用的;如果大家有这样跨平台使用的需求,pyinstaller模块的官方网站则建议借助Wine来代替实现。


首先,我们需要配置一下Python语言中的pyinstaller模块。这里需要注意,如果大家待打包的这个Python代码文件是放在了虚拟环境中,那么这个pyinstaller模块也需要配置在这个虚拟环境中。


在本文中,因为我的待打包文件就是在虚拟环境中,所以首先通过如下的代码进入这一虚拟环境中:

conda activate py39

随后,输入如下的代码,即可开始配置pyinstaller模块。

pip install pyinstaller

运行上述代码,如下图所示:

1716615045962.jpg

随后,找到我们需要加以打包的Python代码文件;如下图所示,这个紫色框内的Alignment.py文件就是本文中需要打包的Python代码文件。

1716615064767.jpg

那么,首先通过cd命令,进入待打包文件所在的路径;在本文中,这里就是执行如下的代码:

cd F:\Data_Reflectance_Rec\code

随后,进入这个文件夹内,我们即可通过如下的命令,将Alignment.py文件加以打包。

pyinstaller -F Alignment.py

其中,-F表示对Alignment.py文件打包时,只生成唯一的1个.exe可执行文件;一般情况下,我们都是带上这个-F参数来运行打包命令的,因为只生成1个.exe可执行文件的话,更方便后期我们对这个可执行文件的分享。


此外,我们还可以在上述代码中加入如下的其他常见参数;当然,除此之外还会有很多其他的参数,具体大家参考pyinstaller模块的官方网站即可。


-h:显示关于pyinstaller命令的帮助。

-D:如果不想要前面-F的效果,那就用这个-D,从而生成多个可执行文件。

-i:如果大家想修改打包后生成的可执行文件的图标,就将自己的图标文件放在这个参数后。

-w:如果大家待打包的Python代码会生成一个GUI界面,那么需要添加此参数,否则后期打开可执行文件时,你的GUI界面可能会被自动弹出的黑色的控制台遮盖导致无法正常显示。


对于大多数需求而言,我们就用上述的那一句代码即可。执行上述代码,出现如下图所示的界面,表明已经开始打包了。

1716615098611.jpg

稍等片刻(如果待打包的Python代码文件中导入的第三方库比较多,那么打包的时间相对就会长一点,但整体不会太久),出现如下图所示的提示,表明打包已经成功完成了。

1716615114516.jpg

此时,我们在与待打包Alignment.py文件同目录的路径中,可以看到pyinstaller模块对其打包后生成的3个新的文件夹或文件,如下图所示:

1716615125311.jpg

其中,打开dist这个文件夹,其中的.exe可执行文件,就是我们打包后的文件。

1716615138785.jpg

接下来,在这台电脑,或者是其他人的电脑中,运行上图中的这个.exe可执行文件,就会实现和我们当初待打包的Alignment.py文件相同的功能。

如下图所示,我这里因为原本的Alignment.py文件是一个对数据加以计算的文件,所以运行打包后的可执行文件时,就会出现一个黑色的控制台,而没有其他的变化。

1716615150445.jpg

至此,大功告成。

相关文章
|
1天前
|
存储 Linux Docker
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?
|
2天前
|
数据可视化 Python
python WAV音频文件处理——(3)高效处理大型 WAV 文件
python WAV音频文件处理——(3)高效处理大型 WAV 文件
27 9
|
2天前
|
数据管理 Python 内存技术
python WAV音频文件处理—— (2)处理PCM音频-- waveio包
python WAV音频文件处理—— (2)处理PCM音频-- waveio包
29 15
|
2天前
|
存储 Python 内存技术
python WAV音频文件处理—— (1)读写WAV文件
python WAV音频文件处理—— (1)读写WAV文件
30 14
|
2天前
|
Python 索引
【Python字符串攻略】:玩转文字,编织程序的叙事艺术
【Python字符串攻略】:玩转文字,编织程序的叙事艺术
|
2天前
|
Python 存储 数据处理
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
|
1天前
|
Shell Python
GitHub星标破千Star!Python游戏编程的初学者指南
Python 是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。 目前的编程书籍大多分为两种类型。第一种,与其说是教编程的书,倒不如说是在教“游戏制作软件”,或教授使用一种呆板的语言,使得编程“简单”到不再是编程。而第二种,它们就像是教数学课一样教编程:所有的原理和概念都以小的应用程序的方式呈现给读者。
|
1天前
|
机器学习/深度学习 存储 自然语言处理
惊艳!老司机熬夜总结的Python高性能编程,高效、稳定、快速!
Python 语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理机器学习、科学计算、推荐系统构建等。 能够轻松实现和代码跑得够快之间的取舍却是一个世人皆知且令人惋惜的现象而这个问题其实是可以解决的。 有些人想要让顺序执行的过程跑得更快。有些人需要利用多核架构、集群,或者图形处理单元的优势来解决他们的问题。有些人需要可伸缩系统在保证可靠性的前提下酌情或根据资金多少处理更多或更少的工作。有些人意识到他们的编程技巧,通常是来自其他语言,可能不如别人的自然。
|
1天前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!