【问题标题】:How to run pyinstaller from python script already converted to exe?如何从已经转换为 exe 的 python 脚本运行 pyinstaller?
【发布时间】:2019-12-31 09:24:19
【问题描述】:

我正在尝试在 python exe 文件中运行 pyinstaller,以便没有 python 的人可以使用 pyinstaller,但不知道该怎么做。

我尝试将 PyInstaller 与其他需要的模块一起导入,并将此脚本转换为 exe,但我收到错误消息“未找到 'PyInstaller' 发行版,应用程序需要该发行版”。我也尝试打包 PyInstaller exe 文件,但也没有用。 Python 3.6.5

有什么办法吗?

【问题讨论】:

  • pyinstaller.org 上的简短浏览将揭示所需的(简单)步骤。

标签: python pyinstaller


【解决方案1】:

最初通过此链接检查 Pyinstaller 的要求 https://pythonhosted.org/PyInstaller/requirements.html

然后安装 Pyinstaller,

pip 安装 pyinstaller

要创建 .exe 文件基本上使用这个命令,

pyinstaller your_script.py

运行创建的.exe

方法一

双击目录中的 .exe 文件。

方法 2

在您的 cmd 提示符下加载到您的当前目录或项目目录然后执行

: .\dist\your_script.exe

因为创建的 .exe 文件保存在 dist 文件夹内的项目文件夹中,仅使用您的脚本文件名。

【讨论】:

    【解决方案2】:

    不幸的是,您所描述的内容在 PyInstaller 中是不可能的。我在 GitHub 上提交了一个issue,这是其中一位开发人员所说的:

    不,这行不通。

    PyInstaller 在内部使用了很多子进程,假设 sys.executable 指向 python 解释器(例如,here);这在冻结的应用程序中是不正确的,它指向冻结的可执行文件,最终导致有效的无限递归。

    即使这不是问题,被冻结的应用程序也只包含python环境的一个子集,因此它不能用于冻结任意脚本(更不用说第三方包的问题)。

    所以无论你有什么用例,PyInstaller 都不支持它。

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 2021-08-12
      • 1970-01-01
      • 2021-06-04
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多