我将Kivy用于GUI并成功开发了桌面exe。该代码运行良好,可以启动照相机,甚至可以录制视频并保存。但是当我创建exe时,记录无法正常工作。录制的视频需要保存,但只保存实际上是空的文件。
我正在使用Windows 10,Anaconda 3.5.5。
这是.spec文件
# -*- mode: python -*-
from kivy.deps import sdl2, glew, gstreamer
block_cipher = None
a = Analysis(['ninth.py'],
pathex=['D:\\Somu_Sir\\new_project'],
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)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='ninth',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )
coll = COLLECT(exe, Tree('D:\\Somu_Sir\\new_project\\required_files\\'),
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins + gstreamer.dep_bins)],
strip=False,
upx=True,
name='ninth')
应用程序正在启动,但只有记录功能不起作用。预期输出应该是存储在同一文件夹中的视频
答案 0 :(得分:1)
是的,您必须使用binaries = []来传递应用程序运行所必需的.dll文件。您的代码可以正常工作,这意味着您的应用程序也应该可以工作。仅当使用PyInstaller创建.exe文件时,如果只需要一个文件,则还需要将所有必需的文件都提供为hiddenimports。您可以尝试使用binaries = [],在其中可以添加一些.dll依赖项,甚至可以通过cmd进行添加,例如:
pyinstaller --add-binary <PATH_TO_PYTHON>\Lib\site-packages\cv2\opencv_ffmpeg320_64.dll
opencv_ffmpeg320_64.dll可以帮助您录制摄像机视频