【问题标题】:How to build multiple .py files into a single executable file using pyinstaller?如何使用 pyinstaller 将多个 .py 文件构建为单个可执行文件?
【发布时间】:2018-12-29 13:06:49
【问题描述】:

我制作了一个包含 5-6 个 .py 文件的小型 PyQt 应用程序。现在我想将它们构建并编译成一个主文件,这意味着它必须从一个主窗口 exe 进行操作。

我的 .py 文件已成功相互连接。我使用 pyinstaller 来制作可执行文件,但问题是我将每个 .py 文件都构建到了自己的 .exe 文件中。但我想制作一个 .exe 文件,通过它可以使用所有 .py 文件。

如何将所有 .py 文件构建成一个 .exe 文件?

【问题讨论】:

  • 你为什么要这样做?
  • 我想把它部署到客户端机器上,只想提供可执行文件。

标签: python pyqt5 pyinstaller


【解决方案1】:

试试这个:

pyinstaller --onefile main_app.py

【讨论】:

  • 它只构建一个.py文件的可执行文件。我将如何连接多个exe文件?
  • 尝试运行它。它将包括您的所有模块
  • 在你的 main.py 文件上运行它
  • 例如:我有一个登录表单,在从数据库验证后会打开主窗口表单。它可以完美地使用命令提示符作为 py 文件,但不能使用 exe 文件。此外,当我导入登录表单中的主窗口在创建可执行文件后不起作用。
  • 哪个文件有所有的导入?在该文件上运行它
【解决方案2】:

假设您有一个名为 create.py 的文件,例如

def square (num)
    return num ** 2 

同一目录中的另一个文件名为 input.py

from . import create
def take_input():
    x = input("Enter Input")
    return create.square(x)

最后是你的 ma​​in.py

from . import input
if __name__ == '__main__':
    ip = input.take_input()

你会调用命令-

pyinstaller --onefile main.py

而pyinstaller会自己导入所有文件的所有依赖

【讨论】:

  • 好的,去检查一下。
  • 在我的程序中,当单击登录按钮时,它会检查数据库,然后调用 os.system ('mainwindow.exe') 应该打开主窗口,但是当我退出主窗口时它没有打开os.system ('loginform.exe') 被调用,它工作得很好。这是调用表单的正确方法吗?
  • 您必须自己调试行为。你的问题说你想建立一个exe,上面的答案就是这样。关于这一点,提出一个新问题是有意义的,因为它会改变当前的问题@MUHAMMADNABEELL1F14BSCS0108
  • 它的完成实际上是Pyinstaller的DB问题。
  • @NabeelAyub 幸运吗?
【解决方案3】:

我认为解决方案是编辑 .spec 文件并在 spec 文件而不是单个 .py 文件上运行 pyinstaller。

您可以在此处找到有关将多个 exe 添加为单个 .spec 文件的信息: https://pyinstaller.readthedocs.io/en/v3.3.1/spec-files.html#multipackage-bundles

【讨论】:

  • 我重新阅读了您的问题,发现我的解决方案并没有完全回答它,您仍然有多个前任(但遇到您问题的人可能正在寻找这个答案)。
【解决方案4】:

使用命令pyinstaller --onefile yourprogramname.py。 Pyinstaller 会自动导入和编译依赖文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 2020-07-16
    • 2020-01-16
    • 1970-01-01
    • 2019-08-15
    • 2017-12-24
    • 1970-01-01
    相关资源
    最近更新 更多