web-dev-qa-db-fra.com

snapcraft snap échouant parce que python modules sont manquants

J'essaie d'apprendre quelque chose à propos de l'emballage de bureau instantané en reconditionnant l'unité-Tweak-tool en un clin d'œil. Je trouve que la documentation est moins que stellaire, mais jusqu'à présent, j'ai un fichier snapcraft.yaml qui ressemble à ceci:

name: unity-Tweak-tool
version: 1
summary: configuration tool for the Unity desktop environment
description: |
 Unity Tweak Tool is a settings manager for the Unity desktop.
 It provides users with a fast, simple and easy-to-use interface 
 with which to access many useful and little known features and settings 
 of the desktop environment that one may want to configure.

apps:
  unity-Tweak-tool:
    command: $SNAP/usr/bin/unity-Tweak-tool
    plugs: [unity7]
parts:
  unity-Tweak-tool:
    plugin: python3
    source: git://github.com/Seth-Johnson/unity-Tweak-tool.git
    source-type: git
    build-packages:
        - python3-distutils-extra
        - python3-all
        - python3-dbus
        - python-dev
    stage-packages:
        - gir1.2-glib-2.0
        - gir1.2-gtk-3.0
        - python3-xdg
        - python3-cairo
        - unity-webapps-service  

Cependant, lorsque je lance snapcraft snap setup.py échoue toujours car plusieurs modules python sont manquants:

  Running setup.py install for unity-Tweak-tool ... error
    Complete output from command /home/sethj/projects/snappy-testing/parts/unity-Tweak-tool/install/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-s6dwhgys-build/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-xxv1mi7p-record/install-record.txt --single-version-externally-managed --compile --home=/tmp/tmp2y5izah7:
    ERROR: Python module values not found
    ERROR: Python module apport not found
    ERROR: Python module apport.hookutils not found
    WARNING: syntax errors in notes/wizardry.py: Missing parentheses in call to 'print' (wizardry.py, line 9)
    ERROR: Python module dbus not found
    ERROR: Python module dbus.service not found
    ERROR: Python module dbus.mainloop.glib not found

(sortie complète ici )

J'admets que je ne suis pas tout à fait sûr de le faire correctement, mais pour autant que je sache, il convient de construire les paquetages listés sous build-packages, qui répondent aux exigences de build pour unity-Tweak-tool.

Où vais-je mal?

6
Seth

Dans le cas de python, vous voulez probablement que certains de ces build-packages soient stage-packages. Le plug-in python permet à PYTHONPATH de faire partie de la capture, raison pour laquelle ces packages sont manquants (vous les avez plutôt installés sur le système hôte).

Soit dit en passant, si cette amont avait un install_requires dans setup.py correct, ces dépendances auraient été automatiquement prises en charge pour vous.

6
sergiusens