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

时间:2018-05-21 17:23:23

标签: python-3.x pyinstaller

我对Python编程很陌生,所以我可能会遗漏一些非常明显的东西。

我已经在Python中完成了一个运行正常的小程序,但是我想与同事分享它,所以我想要做一个独立版本,我尝试使用Pyinstaller,因为它似乎是最简单易用,但生成的exe文件到目前为止似乎无法正常工作。

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

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

pyinstaller main.py

它会生成exe文件,但在执行它时,它只会打开一个黑色窗口,而不会发生任何其他事情。

我正在阅读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文件而不是黑色窗口时,它表示&#34;未能执行脚本main&#34;,我认为这是参考我的main.py文件。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

&#13;
&#13;
# -*- 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')
&#13;
&#13;
&#13;