从 Python 项目创建单个可执行文件[关闭]

2024-11-28 08:37:00
admin
原创
180
摘要:问题描述:我想从我的 Python 项目创建一个可执行文件。用户应该能够下载并运行它,而无需安装 Python。如果我只是分发一个包,我可以使用 pip、wheel 和 PyPI 来构建和分发它,但这要求用户拥有 Python 并知道如何安装包。我可以使用什么来从 Python 项目构建一个独立的可执行文件?...

问题描述:

我想从我的 Python 项目创建一个可执行文件。用户应该能够下载并运行它,而无需安装 Python。如果我只是分发一个包,我可以使用 pip、wheel 和 PyPI 来构建和分发它,但这要求用户拥有 Python 并知道如何安装包。我可以使用什么来从 Python 项目构建一个独立的可执行文件?


解决方案 1:

有几种不同的方法可以做到这一点。


第一种(也是最常见的)方法是使用“冻结”式程序。这些程序通过将 Python 和你的程序捆绑在一起来工作,本质上将它们组合成一个可执行文件:

  • Py安装程序:

网站||仓库|| PyPi

支持 Windows、Mac 和 Linux 上的 Python 3.7 - 3.10。

  • cx_冻结:

网站||仓库|| PyPi

支持 Windows、Mac 和 Linux 上的 Python 3.6 - 3.10。

  • py2exe:

网站||仓库|| PyPi

仅支持 Windows 上的 Python 3.7 - 3.10。

  • py2app:

网站||仓库|| PyPi

仅支持 Mac 上的 Python 3.6 - 3.10。

需要牢记的是,这些类型的程序通常只会为您运行的操作系统生成一个 exe。例如,在 Windows 中运行 Pyinstaller 将生成一个 Windows exe,但在 Linux 中运行 Pyinstaller 将生成一个 Linux exe。如果您想为多个操作系统生成一个 exe,则必须考虑使用虚拟机或 Wine 之类的东西。


当然,这不是唯一的做事方法:

  • pynsist:

网站||仓库|| PyPi

Pynsist 将为您的程序创建一个 Windows 安装程序,它将直接在用户的计算机上安装 Python,而不是将其与您的代码捆绑在一起,并创建链接到您的 Python 脚本的快捷方式。

pynsist 工具本身需要 Python 3.5+ 才能运行,但支持将任何版本的 Python 与您的程序捆绑在一起。

Pynsist 只会创建 Windows 安装程序,但可以从 Windows、Mac 和 Linux 运行。有关更多详细信息,请参阅其常见问题解答。

  • 努伊特卡:

网站|| Repo(Github 镜像) || PyPi

Nuitka 会直接编译你的 Python 代码并生成一个 exe(与其他仅包含 Python 的项目不同),以尝试加快你的代码速度。作为副作用,你还会得到一个可以分发的方便的 exe。请注意,你的系统上需要有C++ 编译器。

在 Windows、Mac 和 Linux 上支持 Python 2.6 - 2.7 和 Python 3.3 - 3.10。

  • cython:

网站||仓库|| PyPi

Cython 与 Nuitka 类似,都是 Python 编译器。但是,它不会直接编译代码,而是将其编译为 C。然后,您可以将该 C 代码转换为 exe。您需要在系统上安装 C 编译器。

在 Windows、Mac 和 Linux 上支持 Python 2.7 和 Python 3.3 - 3.11。


我个人倾向于使用 PyInstaller,因为它对我来说是最容易启动和运行的,可以与各种流行的库(如 numpy 或 pygame)很好地配合使用,并且与各种操作系统和 Python 版本具有很好的兼容性。

不过,我也成功地使用 cx_Freeze 构建了各种 exe,而没有太多困难,所以您也应该考虑尝试该程序。

我还没有机会广泛尝试 pynist、Nuitka 或 Cython,但它们似乎是相当有趣和创新的解决方案。如果您在使用第一组程序时遇到麻烦,可能值得尝试这三个程序之一。由于它们的工作方式与 Pyinstaller/cx_freeze 风格的程序根本不同,它们可能会在第一组程序失败的那些奇怪的边缘情况下取得成功。

具体来说,我认为 pynist 是完全避免分发代码问题的好方法:Mac 和 Linux 已经对 Python 提供本机支持,在 Windows 上安装 Python 可能确实是最干净的解决方案。(缺点是现在您需要担心针对多个版本的 Python + 安装库)。

Nuitka 和 Cython(就我有限的经验而言)似乎运行得相当好。同样,我自己还没有对它们进行过广泛的测试,因此我的主要观察是它们似乎比“冻结”式程序花费更长的时间来生成 exe。


尽管如此,将 Python 程序转换为可执行文件不一定是分发代码的唯一方法。要了解有关其他可用选项的更多信息,请参阅以下链接:

解决方案 2:

截至 2022 年 7 月,pyinstaller正在积极开发中。您可以在 GitHub 上查看最新更改。它支持 Windows、Linux 和 MacOS;32 位和 64 位。它支持 Python 版本 2.6、2.7 和 3.3+。


使用 pip 安装 PyInstaller:

pip install pyinstaller

转到程序的目录并运行:

pyinstaller -F script.py

在 dist 文件夹中找到 .exe。添加-F参数会生成一个独立的 .exe。

解决方案 3:

auto-py-to-exe是 PyInstaller 的 GUI。

自动将 py 转为 exe

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用