我正在尝试从多个 python 文件和其他文件(图像,excel 电子表格)生成一个独立的 exe 文件

I’m trying to generate a standalone exe file from multiple python files and additional files (image, excel spreadsheet)

我对使用 Python 进行编程还很陌生,所以我可能在这里遗漏了一些非常明显的东西。

我在Python做了一个小程序,运行正常,但我想和同事分享,所以我想做一个独立版本,我试过使用Pyinstaller作为它似乎是最简单易用的,但是生成的exe文件到目前为止似乎还没有用。

所以我将我的程序分为一个名为 "main.py" 的主文件和 3 个额外的函数,这些函数是我从同一文件夹中的其他 python 文件导入到主文件中的。它使用一个 excel 电子表格和一个 .ico 图像作为 tkinter 中的徽标。

我的第一次尝试只使用了命令:

pyinstaller main.py

它生成了exe文件,但是执行它时只是打开一个黑色window,没有其他任何反应。

我正在阅读 pyinstaller 的文档,认为我可能还需要添加其他 python 文件和额外文件。对于 excel 和图像我没能理解我需要如何编写它,我尝试添加以下作为选项,但它给了我一个错误

--add-data <logo.ico> --add-data <WAE_SW_NameCnvtn.xlsx>

没有这些,我设法使用以下命令再次生成 exe 文件:

pyinstaller --windowed --name=NameCnvtn main.py read_description.py read_quantity.py word_finder.py

这似乎在 dist 文件夹中添加了很多文件,当我执行 exe 文件而不是黑色 window 时,它显示 "failed to execute the script main",我假设它指的是我的 main.py 文件.

如果有帮助,我使用 python 3.6.4 开发它,它使用 tkinter 和 openpyxl。

感谢您的帮助。

我今天成功运行了exe。我在spec文件中手动添加了 excel 和数据行下的ico,再次编译它之后就正确了 运行ning 。这是规范文件,以防有人遇到与我相同的问题。

# -*- mode: python -*-

block_cipher = None


a = Analysis(['main.py', 'read_description.py', 'read_quantity.py', 'word_finder.py'],
             pathex=['C:\Users\j.berjano\Desktop\app_test'],
             binaries=[],
             datas=[('WAE_SW_NameCnvtn.xlsx','.'),('logo.ico','.')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='NameCnvtn',
          debug=False,
          strip=False,
          upx=True,
          console=False,
    icon='logo.ico')
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='NameCnvtn')