如何为您的python程序制作安装程序

Mal*_*608 6 python installer cross-platform python-3.2

我是python的新手,但我当时正在考虑使用python编写一个程序以赠送给我的朋友。他们对计算机了解不多,所以如果我要求他们自己安装python,他们将做不到,但是如果我可以安装一个仅下载文件所需版本的python版本的安装程序,该怎么办?运行并制作一个exe文件,该文件将在其自己的python解释器中运行.py文件。我还进行了一次Google搜索,看到冻结的应用程序,可以用来将代码制作为exe文件进行分发(cx_freeze,我使用python 3.2),但并不是我的所有朋友都使用Windows计算机,因此我希望在每个新版本中都安装我的程序通过对.py文件制作补丁,而不完全重新安装它,它会自动更新版本。

**我不需要任何使独立可执行的文件。只是某种安装程序,它捆绑了您使用的Python版本的简约版本。还有一个选项,它具有一个exe文件,该文件只是在便携式python解释器中运行python文件的链接,仅适用于Windows,而.sh文件对linux而言也是如此。

小智 8

Pyinstaller 是将它们转换为 Windows 可执行文件的不错选择。cmd.exe您可以以管理员身份安装它并运行pip install pyinstallerpip install --pre pyinstaller

然后你可以使用运行它pyinstaller。(抱歉,我无法提供我在系统恢复后编写的自动脚本。我很快就会使用 pyqt5 再次编写它)

句法

--onefile- 将程序及其文件放入 exe 中。

--onedir- 将程序放入目录(文件夹)中(比--onefile不需要解压文件更快)

-c- 创建一个控制台应用程序。

-w- 创建一个没有控制台的应用程序。

-i "[Path to .ico or exe with icon. e.g C:\Files\CODE\Icon.ico]"- 创建一个没有控制台的应用程序。

你可以在这里阅读其余部分。

然后,您可以获取inno setup并创建离线安装程序。

如果您需要一个网络安装程序(它会下载一个文件并解压它。)我目前正在编写一个,并且很乐意为您创建一个。


小智 7

关于安装程序(适用于 Windows)。

我认为您正在寻找的是InstallForge。这是一个可以用来构建您自己的安装向导的工具。这个网站pythonguis是 PyInstaller 和 InstallForge 的教程。如果您对使用 PyInstaller 使 py 应用程序可执行,您可以跳过 PyInstaller 部分并转到中间查看 InstallForge 教程,尽管我像许多人提到的那样推荐它。

InstallForge 能够制作您自己的安装向导,您可以对其进行编程,将 py 文件或可执行文件安装在您想要的目录中,并创建您希望您的朋友运行的应用程序的快捷方式。

如果您不必像您所说的那样下载 python 解释器版本,如果您将 py 文件与 Pyinstaller 捆绑在一起,它将已经包含 python 解释器版本,从而更容易在 InstallForge 中捆绑。这里的另一个 StackOverflow 线程解释了如何使用命令行安装 python,假设您已经安装了 python 解释器。要以自动方式实际从网络下载 python,我无法找到为此设计的系统的信息,尽管我确信如果您有创意,这并非不可能。

在弄清楚如何捆绑并安装程序后,您可以使用pip 中的PyUpdater python 模块对系统进行编程以自动更新自身


Pro*_*ica 5

我很震惊,没有答案提到 py2exe 现在支持 Python 2.x 和 Python 3.x

https://pypi.python.org/pypi/py2exe#downloads

  • 据我所知,py2exe 不支持 3.6,仅支持 3.4。 (2认同)

Abh*_*Das 1

Python 是一种解释型语言,而不是编译型语言。因此,您可能想要分发的任何独立程序都必须将整个解释器以及您使用的库捆绑在其中。这将导致单个程序的文件大小巨大。此外,这个巨大的安装不能用于运行其他 python 程序。一个比这稍微复杂但更好的解决方案是只安装一次解释器并用它运行任何 python 程序。

我知道你的问题的目的是制作一个独立的可执行文件,所以我知道我不会回答它。但无法创建可执行的独立程序是解释语言的警告之一。然而,这里的一个基本点是关于解释性语言的整个目标,它是一个单一的解释器,具有运行任何 python 代码所需的所有通用函数(现在很高兴不需要比它们需要的更长)。所以你看,这并不是一个真正的警告,这就是解释语言的全部意图。您最终可能会找到一种方法来创建在朋友的计算机上运行的独立 python 可执行文件,但这会破坏解释性语言背后的整个框架和想法。

  • 抱歉,我不是在寻找那个,但无论如何,我是在寻找你。:D (7认同)