Я создал оснастку, используя плагин python3. Он должен открыть приложение PyQt5. Привязка создается без проблем, но после ее установки вызов установленного сценария python в командной строке завершается с ошибкой, приведенной ниже.
My snapcraft.yaml
name: pyqthelloworld
version: 0.1.0
summary: pyqt hello world
description: |
a pyqt5 python3 hello world test
confinement: strict
apps:
pyqthelloworld:
command: pyqthelloworld
parts:
pyqthelloworld:
plugin: python3
source: git://github.com/ericoporto/pyqthelloworld
source-type: git
stage-packages:
- python3-pyqt5
- libc-bin
- locales
Я собрал и установил, используя команды ниже
snapcraft stage
snapcraft snap
sudo snap install pyqthelloworld_0.1.0_amd64.snap
В командной строке
$ pyqthelloworld
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Current thread 0x00007fb8fc0ff700 (most recent call first):
Aborted (core dumped)
В чем дело? И как отлаживать подобные ошибки в моментальных снимках?
Я использую Ubuntu 16.04 LTS 64-bit
Редактировать: проверка наличия кодировок (это правильно?)
user@pc:~/git/pyqthelloworld/snap$ find . -iname encodings
./prime/usr/lib/python3.5/encodings
./parts/pyqthelloworld/install/usr/lib/python3.5/encodings
./stage/usr/lib/python3.5/encodings
Edit2: я сейчас получаю (snapcraft 2.15.1):
$ pyqthelloworld
This application failed to start because it could not find or load the Qt platform plugin "xcb".
Reinstalling the application may fix this problem.
Aborted (core dumped)
Просто чтобы прояснить, без изменений, просто более новый snapcraft на том же (и обновленном) компьютере Ubuntu 16.04.
Edit3:
Теперь я добавил папку моментальных снимков , где я храню snapcraft.yaml (который теперь немного отличается от того, что был в начале этого вопроса!) и небольшая обертка, чтобы справиться с ошибкой локали - что я не думаю, что нужно.
Теперь, когда я запускаю команду (pyqthelloworld) для установленной оснастки, я получаю:
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb.
Reinstalling the application may fix this problem.
Aborted (core dumped)
В настоящее время существует две ошибки, связанные со снимками, которые блокируют это, оба находятся в работах, которые будут зафиксированы хотя:
можно ли проверить содержание снимка и видеть ли, существуют ли какие-либо encodings
поставленные модули?
Я думаю, что Вы были наиболее вероятными жертва hashbang проблемы, последние версии snapcraft должны решить это, если не еще одна опция состоит в том, чтобы использовать относительный путь в command
так, чтобы по существу command
был command: usr/bin/pyqthelloworld