将多个python文件捆绑到exe

时间:2020-05-11 10:41:50

标签: python exe pyinstaller

我有2个Python文件,一个是 runner.py ,另一个是 IntegrationV10.py ,还有一些其他Excel文件用于存储中间数据。 在一个文件夹中,我拥有上述所有文件。 runner.py 文件运行无限循环,并且在循环内部每秒调用一次 IntegrationV10.py 文件。

runner.py 的代码如下:

...
while True:

    try:

        os.system("python IntegrationV10.py")
        time.sleep(1)

    except KeyboardInterrupt:

break

我想将 runner.py,IntegrationV10.py 和所有Excel文件捆绑到一个简单的exe文件中。为此,我运行以下命令:

pyi-makespec runner.py IntegrationV10.py
pyinstaller runner.spec

该exe文件在 dist 文件夹中创建并运行。但是它显示以下错误:

没有名为IntegrationV10.py的文件

上面的消息显示每次运行Runner.exe时。我无法将IntegrationV10.py和excel文件捆绑在同一exe文件中。但是,当我将 dist 目录中的IntegrationV10.py和excel文件复制粘贴为Runner.exe时,它开始工作。但是我想将它们捆绑在一起,而不是复制粘贴。 请帮助我。

2 个答案:

答案 0 :(得分:0)

请参见the documentation for pyi-makespec。您需要给它一个已经存在的文件的名称。换句话说,pyi-makespec runner.py IntegrationV10.py失败是因为“ IntegrationV10.py”不存在(或找不到)。

在您的帖子中,您将在“ Integration10.py”和“ IntegrationV10.py”之间切换。如果将pyi-makespec runner.py IntegrationV10.py替换为pyi-makespec runner.py Integration10.py,该命令是否起作用?

答案 1 :(得分:0)

代替

pyi-makespec runner.py IntegrationV10.py

如果使用Windows,请尝试以下操作:

pyi-makespec --add-data "IntegrationV10.py;." runner.py

或者如果您使用的是Mac / Linux,请尝试以下操作:

pyi-makespec --add-data "IntegrationV10.py:." runner.py

This SO post很有帮助。

也要将Excel文件添加到捆绑包中,例如

pyi-makespec --add-data "IntegrationV10.py;." --add-binary "*xlsx:." runner.py

应该工作。有关详细信息,请参见https://pyinstaller.readthedocs.io/en/stable/spec-files.html#adding-binary-files