pyqt Snap build riuscito, non riesce a funzionare

7

Ho costruito uno snap usando il plugin python3. Dovrebbe aprire un'app PyQt5. Lo snap creato senza problemi, ma dopo l'installazione dello snap, la chiamata dello script python installato nella riga di comando non riesce con l'errore seguente.

Il mio 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

Ho creato e installato utilizzando i comandi seguenti

snapcraft stage
snapcraft snap
sudo snap install pyqthelloworld_0.1.0_amd64.snap

Nella riga di comando

$ 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)

Cosa c'è che non va? E come faccio a eseguire il debug di errori simili in snap?

Sto usando Ubuntu 16.04 LTS a 64 bit

Modifica: controlla se le codifiche sono presenti (è corretto?)

[email protected]:~/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

Modifica2: ora sto ottenendo (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)

Solo per chiarire, nessuna modifica, solo uno snapshot più recente sullo stesso (e aggiornato) computer di Ubuntu 16.04.

Edit3:

Ora ho aggiunto una cartella snap , dove sto mantenendo lo snapcraft.yaml (che ora è un po 'diverso da quello all'inizio di questa domanda!) e un piccolo wrapper per gestire l'errore locale - che non credo dovrebbe essere necessario.

Ora quando eseguo il comando (pyqthelloworld) per lo snap installato sto ottenendo:

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)
    
posta Elric 07.06.2016 - 05:16

2 risposte

4

Ci sono attualmente due bug relativi agli snap che bloccano questo, entrambi i lavori sono comunque da risolvere:

Puoi controllare il contenuto del tuo snap e vedere se ci sono dei moduli encodings spediti?

    
risposta data dholbach 17.06.2016 - 07:22
2

Penso che tu sia più probabile una vittima del problema di hashbang, le versioni recenti di snapcraft dovrebbero risolvere questo, se non un'altra opzione è quella di usare un percorso relativo in command in modo che essenzialmente command sia command: usr/bin/pyqthelloworld

    
risposta data sergiusens 02.09.2016 - 20:37

Leggi altre domande sui tag