无法使用Pyinstaller构建.exe

问题描述

我有2个文件一个是Main.py,另一个是Autoe.ui,我希望两者都作为一个.exe 我尝试过

pyinstaller -w --add-data="Autoe.ui;." Main.py

这很好用,但是它也创建了许多其他文件,我只需要一个exe,所以我尝试了

pyinstaller.exe -w --onefile --add-data="Autoe.ui;." Main.py

这将创建一个.exe,但它将无法运行,我弹出窗口显示“无法执行脚本Main”

解决方法

我在Kivy应用程序中遇到了类似的问题。就我而言,这是一个kv文件,而不是ui。也许我所做的会为您提供帮助。 在带有* .py文件的文件夹中,我运行了命令:

pyinstaller --onefile -y --clean --windowed --icon=someicon.ico main.py

main.spec文件出现在该文件夹中。我已经编辑了。

# -*- mode: python ; coding: utf-8 -*-
block_cipher = None

a = Analysis(["main.py"],pathex=["C:\\Users\\underground\\Desktop\\gdc"],#<<<<<<<path to folder of your app
             binaries=[]
             datas=[],hiddenimports=[],hookspath=[],runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
pyz = PYZ(a.pure,a.zipped_data,cipher=block_cipher)
             
a.datas += [('gdc.kv','C:\\Users\\underground\\Desktop\\gdc\\gdc.kv','DATA')]  #<<<< I added kv file to a.datas
excluded_binaries = ['VCRUNTIME140.dll']                        #<<<< I disabled this library because my app won't start on win10
a.binaries = TOC([x for x in a.binaries if x[0] not in excluded_binaries])

exe = EXE(pyz,Tree('C:\\Users\\underground\\Desktop\\gdc\\Data','Data'),a.scripts,a.binaries,a.zipfiles,a.datas,[],name='main',debug=False,bootloader_ignore_signals=False,strip=False,upx=False,upx_exclude=[],runtime_tmpdir=None,console=False,icon='ikona.ico')

编辑规格文件时,我再次运行pyintaller,但提供了规格文件而不是* .py文件。

pyinstaller main.spec

...仅此而已。 您也可以尝试使用GUI版本-auto-py-to-exe,而不是pyinstaller。