Есть ли способ записи видео после создания exe с помощью pyinstaller - PullRequest
1 голос
/ 23 мая 2019

Я использую Kivy для графического интерфейса и успешно разработал настольную версию.Код работает нормально, который запускает камеру и даже записывает видео и сохраняет его.Но когда я создаю 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 Ответ

1 голос
/ 24 мая 2019

Да, вы должны использовать двоичные файлы = [], где вам нужно передать DLL-файлы, необходимые для запуска вашего приложения.Ваш код работает нормально, это означает, что ваше приложение также должно работать.только при создании .exe-файла с помощью PyInstaller вам нужно предоставить все необходимые файлы как скрытые импорты, а также, если вам нужен только один файл.Вы можете попробовать binaries = [], где вы можете добавить количество зависимостей .dll или даже через cmd, например:

pyinstaller --add-binary <PATH_TO_PYTHON>\Lib\site-packages\cv2\opencv_ffmpeg320_64.dll

opencv_ffmpeg320_64.dll может помочь вам записывать видео с камеры

...