打包Python代码使其可在其他电脑直接运行:pyinstaller

2025-01-01 17:36:34 10点赞 130收藏 9评论

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

  有时,我们希望将自己电脑上的某个Python文件发到另一台电脑上使用;而如果这个Python文件中包含了大量的第三方库,那么首先不仅需要保证另一台电脑上有Python环境,而且还需要配置好这些第三方库——这无疑是比较麻烦的。但是,我们可以选择将Python文件(及其所包含的全部第三方库)打包为.exe文件,然后发送给其他电脑并直接加以执行;而这个打包的过程,基于Python语言中的pyinstaller模块,就可以非常方便地进行。本文就介绍一下这个打包的具体方法。

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

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

  在本文中,因为我的待打包文件就是在虚拟环境中,所以首先通过如下的代码进入这一虚拟环境中。其中,关于Python虚拟环境的创建与使用,大家可以参考文章创建Python虚拟环境:Anaconda实现

conda activate py39

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

pip install pyinstaller

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

打包Python代码使其可在其他电脑直接运行:pyinstaller

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

打包Python代码使其可在其他电脑直接运行:pyinstaller

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

cd F:Data_Reflectance_Reccode

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

pyinstaller -F Alignment.py

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

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

-h:显示关于pyinstaller命令的帮助。 -D:如果不想要前面-F的效果,那就用这个-D,从而生成多个可执行文件。 -i:如果大家想修改打包后生成的可执行文件的图标,就将自己的图标文件放在这个参数后。 -w:如果大家待打包的Python代码会生成一个GUI界面,那么需要添加此参数,否则后期打开可执行文件时,你的GUI界面可能会被自动弹出的黑色的控制台遮盖导致无法正常显示。

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

打包Python代码使其可在其他电脑直接运行:pyinstaller

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

打包Python代码使其可在其他电脑直接运行:pyinstaller

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

打包Python代码使其可在其他电脑直接运行:pyinstaller

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

打包Python代码使其可在其他电脑直接运行:pyinstaller

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

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

打包Python代码使其可在其他电脑直接运行:pyinstaller

  至此,大功告成。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
9评论

  • 精彩
  • 最新
  • conda 建立的虚拟环境,模块的安装和更新是用conda还是用pip比较好?

    校验提示文案

    提交
    您好 一般都说 如果是conda或者anaconda、miniconda这种 那就首选conda;如果是自己单独下载的python 那就pip;不过有些情况 可能只能用pip(比如我记得我之前遇到过conda不能下载 pip可以下载的包) 这种就只能pip了~

    校验提示文案

    提交
    收起所有回复
  • 怎么反编译,把Python编译成exe(不知何方法)的exe程序,反编出Python代码?

    校验提示文案

    提交
    您好 不好意思这个我还不是很了解 不过前几天我正好刷到一个文章 说pyinstaller不安全 因为打的包会被人解开 但是我没有仔细看怎么解 您可以再搜索一下看看~

    校验提示文案

    提交
    好的好的

    校验提示文案

    提交
    收起所有回复
  • 虛擬環境打包的exe對方也需要同樣的虛擬環境嗎?還是對方的版本和包要一樣?

    校验提示文案

    提交
    您好 不需要的 这个打包的话 因为pyinstall会自带python编译器 所以哪怕没有python环境也可以~ 不过也因为如此 导致打包会有点大~

    校验提示文案

    提交
    收起所有回复
  • ipynb能不能打包?

    校验提示文案

    提交
    您好 我搜了一下 没问题的 也是可以的 具体方法您可以参考他们的博客~

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
130
扫一下,分享更方便,购买更轻松