【问题标题】:How do you make an installer for your python program你如何为你的 python 程序制作安装程序
【发布时间】:2012-04-15 04:16:21
【问题描述】:

我是 python 新手,但我正在考虑用 python 制作一个程序来送给我的朋友。 他们对计算机知之甚少,所以如果我让他们自己安装 python,他们就做不到,但是如果我可以制作一个安装程序来下载某些版本的 python,它只包含我的文件所需的内容运行并制作一个 exe 文件,该文件将在其自己的 python 解释器中运行 .py 文件。我还进行了谷歌搜索,看到了我可以用来将代码制作成 exe 文件以分发的冻结应用程序(cx_freeze 我使用 python 3.2),但并不是我所有的朋友都有 Windows 计算机,我宁愿让我的程序在每个新的通过对 .py 文件打补丁而不是完全重新安装它来自动更新版本。

** 我不是在寻找任何东西来制作独立的可执行文件。 只是某种安装程序,它捆绑了您使用的 Python 版本的简约版本。还有一个选项,它只是一个链接,可以在便携式 python 解释器中运行 python 文件,仅适用于 windows 和一个 .sh 文件,它对 linux 执行相同的操作。

【问题讨论】:

  • 投票关闭迫在眉睫,但在它到来之前:看看here。对于跨平台,请考虑easy-install
  • 我推荐cx_Freeze。它具有降低被检测为恶意软件的机会的主要优势。好吧,至少对我来说。

标签: python installation cross-platform python-3.2


【解决方案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 并创建离线安装程序。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • py2exe 不支持 3.6,仅支持 3.4,据我所知。
    • 支持 Python 3.3 及更高版本。它可以构建控制台可执行文件、Windows (GUI) 可执行文件、Windows 服务和 DLL/EXE COM 服务器。
    【解决方案3】:

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

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

    【讨论】:

    • 很抱歉,我不是在寻找那个,但无论如何都是你。 :D
    • 一个选项是将您的项目特定文件与您想要的解释器捆绑在一个安装包中(例如使用nsis.sourceforge.net/Main_Page)。这样你就可以让他们安装 python(或检查它是否已经存在)和你的项目特定文件。
    • 这不是一个有用的答案,它没有提供解决方案。
    • 我有一个小 Python 工具,我错了,我使用 pyinstaller 创建了一个 exe,并且(如你所说)“巨大”的一个文件 exe 是 10 兆字节,真的很小 ;-) 这个甚至包括一些库,所以完全没有问题。
    猜你喜欢
    • 2010-11-02
    • 2021-12-02
    • 1970-01-01
    • 2011-05-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    相关资源
    最近更新 更多