你如何为你的python程序安装程序

时间:2012-03-31 23:24:48

标签: python installer cross-platform python-3.2

我是python的新手,但我正在考虑用python创建一个程序给我的朋友。 他们对计算机知之甚少,所以如果我要求他们自己安装python他们就不能这样做了,但是如果我能安装下载某些版本的python但只有我的文件所需要的东西怎么办呢?运行并生成一个exe文件,该文件将在其自己的python解释器中运行.py文件。我也进行了谷歌搜索,看到了我可以使用的冻结应用程序将代码转换为exe文件进行分发(cx_freeze我使用的是python 3.2),但并非所有的朋友都有Windows计算机,我宁愿让我的程序在每个新的它通过对.py文件进行补丁而不是完全重新安装它来自动更新。

**我不是在寻找任何可以制作独立可执行文件的东西。 只是某种安装程序捆绑您使用的python版本的简约版本。还有一个选项,有一个exe只是在可移植的python解释器中运行python文件的链接,只是对于windows和.sh文件,它会对linux做同样的事情。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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]"-在没有控制台的情况下创建应用。

您可以阅读其余的here

然后您可以获取inno setup并创建一个脱机安装程序。

如果您需要Web安装程序(它将下载文件并解压缩。),我目前正在编写其中一个文件,很高兴为您创建一个。