使用pyinstaller创建exe后是否有办法录制视频

时间:2019-05-23 09:24:44

标签: python camera kivy pyinstaller

我将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')

应用程序正在启动,但只有记录功能不起作用。预期输出应该是存储在同一文件夹中的视频

1 个答案:

答案 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可以帮助您录制摄像机视频