Python Pyinstaller 3.5不会生成独立的可执行文件
我试图让Pyinstaller 3.5创建一个“onefile”可执行文件,但它一直生成一个“onedir” 我的文件都在一个目录中。有一个主程序导入另外两个模块,然后再导入第三个模块。当直接在Python 3.7.4中运行时,该程序可以正常运行。Pyinstaller生成的“onedir”版本也可以使用。我在Surface Book 2上运行64位Windows 10 Pro 我用来生成文件的命令是:Python Pyinstaller 3.5不会生成独立的可执行文件,python,pyinstaller,Python,Pyinstaller,我试图让Pyinstaller 3.5创建一个“onefile”可执行文件,但它一直生成一个“onedir” 我的文件都在一个目录中。有一个主程序导入另外两个模块,然后再导入第三个模块。当直接在Python 3.7.4中运行时,该程序可以正常运行。Pyinstaller生成的“onedir”版本也可以使用。我在Surface Book 2上运行64位Windows 10 Pro 我用来生成文件的命令是: pyinstaller--onefile--windowed--additional hoo
pyinstaller--onefile--windowed--additional hooks dir=。质量管理规范
我的程序使用wx、pubsub、xmltodict、requests和pandas。额外的钩子文件用于xlrd,熊猫需要读取xlsx文件
我的等级库文件如下所示:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
# work-around for https://github.com/pyinstaller/pyinstaller/issues/4064
import distutils
if distutils.distutils_path.endswith('__init__.py'):
distutils.distutils_path = os.path.dirname(distutils.distutils_path)
addedfiles = ('qualys_admin.ini', '.')
a = Analysis(['qualys_admin.py'],
pathex=['C:\\Users\\secops-sw\\Documents\\qualys-
administration\\qualysadmin'],
binaries=[],
datas=[addedfiles],
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)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='qualys_admin',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='qualys_admin')
我写了一个小小的“hello world”程序,以消除程序的复杂性。我成功地生成了“onedir”和“onefile”。所以我知道在哪里可以找到独立的可执行文件
对于我的qualys_admin应用程序,该可执行文件肯定没有生成,我找不到任何警告来说明原因
有人有什么想法吗?它不起作用,因为您的规范文件配置为一个目录模式。您需要使用“一个文件”标志创建等级库文件
pyi-makespec --onefile yourscript.py
然后,您可以修改规范表,并使用自定义规范表构建应用程序。请尝试
pyinstaller--onefile
先创建为onefile配置的规范文件,然后删除创建的其他文件夹并在规范文件中进行必要的更改,然后运行-pyinstaller--onefile--windowed--additional hooks dir=。qualys_admin.spec
为--onefile重新创建规范文件是我所缺少的。我按照你的建议做了,并且能够生成一个功能完美的独立可执行文件。非常感谢。这似乎是对前面建议的一个变体,我相信它也会起作用,并且可能会通过避免最初生成可执行文件而花费更少的时间。我也会试试这个。谢谢。是的,这是只生成规格表的正确方法。