В настоящее время я пишу приложение для Raspberry Pi 3, используя python3 .7 и kivy1.11.1. Я пытаюсь упаковать тестовое приложение, чтобы оно работало. Я создал простую сетку с 6 кнопками. Когда вы нажимаете на кнопку, она печатает «кнопка нажата» на экране. Я использую отдельный файл kv, чтобы выложить это, поскольку это будет более практичным, поскольку приложение развивается. Итак, у меня есть два файла, «test.py» и «Test.kv».
Я использовал pyinstaller для упаковки своего приложения, но оно не работает. Он запускается и создает исполняемый файл без ошибок. Затем я перетаскиваю свой исполняемый файл в основную папку из папки «dist», как рекомендовано в этом видео .
Моя команда:
pyinstaller --onefile --add-data "Test.kv:." test.py
У меня есть также попытался:
pyinstaller --onedir --add-data "Test.kv:." test.py
, который делает то же самое: пустое окно без виджетов, без ошибок.
Когда я пытаюсь выполнить это, ничего не происходит. Я не знаю, что не так, потому что я не получаю никаких ошибок при попытке выполнить его из терминала. Когда я делаю точно такой же процесс на windows, он работает, поэтому это не код. Иногда я думаю, что это в конечном итоге запускается, но я просто получаю пустой экран и снова без ошибок. Это заставило бы меня поверить, что это проблема чтения файла .kv.
Возможно, этот процесс не работает с kivy, и мне нужно использовать какой-то другой метод для упаковки моего приложения. Однако я также попробовал такой подход , но он оставил меня с ошибками. Я очень предпочитаю метод pyinstaller, однако я не знаю, будет ли он работать, поскольку он, похоже, не подхватывает файл .kv.
Любая помощь / совет по этому вопросу будет принята с благодарностью?
Мой файл test.spe c:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['test.py'],
pathex=['/home/pi/Desktop/WinTest'],
binaries=[],
datas=[('Test.kv', '.')],
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='test',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False )
На следующем рисунке показана папка моей программы (извините за плохое качество). Мои файлы библиотеки находятся в venv / Lib / site-packages. Это где мои папки kivy / kivy_deps. Может быть проблема в том, что программа не может найти файлы моей библиотеки? Но, конечно же, если бы это было проблемой, то это привело бы к ошибке «файл не найден»? И, как было сказано ранее, я не получаю никаких ошибок.
Обнаружил это в моем файле warn-text.txt
missing module named kivy.lib.vidcore_lite.egl - imported by kivy.lib.vidcore_lite (top-level), kivy.core.window.window_egl_rpi (top-level)
missing module named kivy.lib.vidcore_lite.bcm - imported by kivy.lib.vidcore_lite (top-level), kivy.core.window.window_egl_rpi (top-level)