Я пытаюсь привязать пакет к нечистому проекту python. Я использовал плагин python с настраиваемыми скриптами сборки / установки.
Этот проект содержит 2 пакета python, которые требуются для настольного приложения:
alfanous (API) alfanous-desktop ( Qt PySide GUI)snapcraft.yaml file:
name: alfanous
version: "0.7.8"
summary: Alfanous
description: GNU hello prints a friendly greeting.
This is part of the snapcraft tour at http://snapcraft.io/create/
#confinement: strict
confinement: devmode
apps:
alfanous-gui:
command: usr/bin/alfanous-desktop
#desktop: usr/share/applications/my-app.desktop
alfanous-cli:
command: usr/bin/alfanous-console
parts:
alfanous-git:
build-packages:
#- python
- sqlite3
- pyside-tools
- qt4-linguist-tools
- python-babel
- qt4-qmake
- python-setuptools
#- python-pyparsing
#- perl
#plugin: make
plugin: python
python-version: python2
#source: https://github.com/Alfanous-team/alfanous/archive/0.7.8.tar.gz
source: https://github.com/Alfanous-team/alfanous.git
source-type: git
source-depth: 1
#source-tag: 0.7.8
build: |
make build
install: |
echo _______#######:$(pwd)
#make install_api
make install_api DESTDIR=$SNAPCRAFT_PART_INSTALL
make install_desktop DESTDIR=$SNAPCRAFT_PART_INSTALL
stage-packages:
- python-pyparsing
- python-pyside
#- epydoc
#- sphinx
- python-babel
- python-setuptools
python-packages:
- pyparsing
- pyside
- babel
Snap-пакет построен и установлен без ошибок. Однако, если я пытаюсь запустить его:
$ alfanous.alfanous-cli
Traceback (most recent call last):
File "/snap/alfanous/x3/usr/bin/alfanous-console", line 5, in <module>
from pkg_resources import load_entry_point
File "/snap/alfanous/x3/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2927, in <module>
@_call_aside
File "/snap/alfanous/x3/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2913, in _call_aside
f(*args, **kwargs)
File "/snap/alfanous/x3/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/snap/alfanous/x3/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 635, in _build_master
ws.require(__requires__)
File "/snap/alfanous/x3/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 943, in require
needed = self.resolve(parse_requirements(requirements))
File "/snap/alfanous/x3/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 829, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'alfanous==0.7.29' distribution was not found and is required by the application
Мой первый подозреваемый не завершен PYTHONPATH, пытается отлаживать:
snap run --shell alfanous.alfanous-cli
env | grep -i python
ничего не приносит.
и оба пакета:
$ ls /snap/alfanous/current/usr/lib/python2.7/site-packages/
alfanous alfanousDesktop
alfanous-0.7.29-py2.7.egg-info alfanousDesktop-0.7.29-py2.7.egg-info
Как я мог правильно настроить PYTHONPATH? Должен ли плагин python позаботиться об этом?
snapcraft v2.28 Ubuntu 16.04.2 LTS 64Bit
Я изменил alfanous-console, чтобы напечатать sys.path, и перестроить привязку:
['/snap/alfanous/x4/usr/bin',
'/snap/alfanous/x4/usr/lib/python2.7',
'/snap/alfanous/x4/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/snap/alfanous/x4/usr/lib/python2.7/lib-tk',
'/snap/alfanous/x4/usr/lib/python2.7/lib-old',
'/snap/alfanous/x4/usr/lib/python2.7/lib-dynload',
'/snap/alfanous/x4/usr/lib/python2.7/dist-packages']
Кажется, что snap не включает site-packages в PYTHONPATH, где мой целевой пакет устанавливает сам.
Поэтому мне нужно изменить его путь установки или сообщить об этом, чтобы добавить команду usr/lib/python2.7/site-packages. Связанный отчет об ошибке # 1670749: классическое ограничение требует ручной настройки PATH и PYTHONPATH. Предлагаемое решение там не срабатывало :apps:
alfanous-gui:
command: usr/bin/alfanous-desktop
environment:
PATH: $SNAP/usr/bin:$SNAP/bin/:$PATH
PYTHONPATH: $SNAP/usr/lib/python2.7/site-packages:$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
#desktop: usr/share/applications/my-app.desktop
alfanous-cli:
command: usr/bin/alfanous-console
environment:
PATH: $SNAP/usr/bin:$SNAP/bin/:$PATH
PYTHONPATH: $SNAP/usr/lib/python2.7/site-packages:$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
Из-за этого странного пути, указывающего на папку хоста /home ['/snap/alfanous/x7/usr/bin',
'/snap/alfanous/x7/usr/lib/python2.7/site-packages',
'/snap/alfanous/x7/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/dist-packages',
'/home/sneetsher/Desktop/sandbox/alfanous-snap',
'/snap/alfanous/x7/usr/lib/python2.7',
'/snap/alfanous/x7/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/snap/alfanous/x7/usr/lib/python2.7/lib-tk',
'/snap/alfanous/x7/usr/lib/python2.7/lib-old',
'/snap/alfanous/x7/usr/lib/python2.7/lib-dynload']
Я изменил alfanous-console, чтобы напечатать sys.path, и перестроить привязку:
['/snap/alfanous/x4/usr/bin',
'/snap/alfanous/x4/usr/lib/python2.7',
'/snap/alfanous/x4/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/snap/alfanous/x4/usr/lib/python2.7/lib-tk',
'/snap/alfanous/x4/usr/lib/python2.7/lib-old',
'/snap/alfanous/x4/usr/lib/python2.7/lib-dynload',
'/snap/alfanous/x4/usr/lib/python2.7/dist-packages']
Кажется, что snap не включает site-packages в PYTHONPATH, где мой целевой пакет устанавливает сам.
Поэтому мне нужно изменить его путь установки или сообщить об этом, чтобы добавить команду usr/lib/python2.7/site-packages. Связанный отчет об ошибке # 1670749: классическое ограничение требует ручной настройки PATH и PYTHONPATH. Предлагаемое решение там не срабатывало :apps:
alfanous-gui:
command: usr/bin/alfanous-desktop
environment:
PATH: $SNAP/usr/bin:$SNAP/bin/:$PATH
PYTHONPATH: $SNAP/usr/lib/python2.7/site-packages:$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
#desktop: usr/share/applications/my-app.desktop
alfanous-cli:
command: usr/bin/alfanous-console
environment:
PATH: $SNAP/usr/bin:$SNAP/bin/:$PATH
PYTHONPATH: $SNAP/usr/lib/python2.7/site-packages:$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
Из-за этого странного пути, указывающего на папку хоста /home ['/snap/alfanous/x7/usr/bin',
'/snap/alfanous/x7/usr/lib/python2.7/site-packages',
'/snap/alfanous/x7/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/dist-packages',
'/home/sneetsher/Desktop/sandbox/alfanous-snap',
'/snap/alfanous/x7/usr/lib/python2.7',
'/snap/alfanous/x7/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/snap/alfanous/x7/usr/lib/python2.7/lib-tk',
'/snap/alfanous/x7/usr/lib/python2.7/lib-old',
'/snap/alfanous/x7/usr/lib/python2.7/lib-dynload']
Я изменил alfanous-console, чтобы напечатать sys.path, и перестроить привязку:
['/snap/alfanous/x4/usr/bin',
'/snap/alfanous/x4/usr/lib/python2.7',
'/snap/alfanous/x4/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/snap/alfanous/x4/usr/lib/python2.7/lib-tk',
'/snap/alfanous/x4/usr/lib/python2.7/lib-old',
'/snap/alfanous/x4/usr/lib/python2.7/lib-dynload',
'/snap/alfanous/x4/usr/lib/python2.7/dist-packages']
Кажется, что snap не включает site-packages в PYTHONPATH, где мой целевой пакет устанавливает сам.
Поэтому мне нужно изменить его путь установки или сообщить об этом, чтобы добавить команду usr/lib/python2.7/site-packages. Связанный отчет об ошибке # 1670749: классическое ограничение требует ручной настройки PATH и PYTHONPATH. Предлагаемое решение там не срабатывало :apps:
alfanous-gui:
command: usr/bin/alfanous-desktop
environment:
PATH: $SNAP/usr/bin:$SNAP/bin/:$PATH
PYTHONPATH: $SNAP/usr/lib/python2.7/site-packages:$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
#desktop: usr/share/applications/my-app.desktop
alfanous-cli:
command: usr/bin/alfanous-console
environment:
PATH: $SNAP/usr/bin:$SNAP/bin/:$PATH
PYTHONPATH: $SNAP/usr/lib/python2.7/site-packages:$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
Из-за этого странного пути, указывающего на папку хоста /home ['/snap/alfanous/x7/usr/bin',
'/snap/alfanous/x7/usr/lib/python2.7/site-packages',
'/snap/alfanous/x7/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/dist-packages',
'/home/sneetsher/Desktop/sandbox/alfanous-snap',
'/snap/alfanous/x7/usr/lib/python2.7',
'/snap/alfanous/x7/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/snap/alfanous/x7/usr/lib/python2.7/lib-tk',
'/snap/alfanous/x7/usr/lib/python2.7/lib-old',
'/snap/alfanous/x7/usr/lib/python2.7/lib-dynload']
Я изменил alfanous-console, чтобы напечатать sys.path, и перестроить привязку:
['/snap/alfanous/x4/usr/bin',
'/snap/alfanous/x4/usr/lib/python2.7',
'/snap/alfanous/x4/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/snap/alfanous/x4/usr/lib/python2.7/lib-tk',
'/snap/alfanous/x4/usr/lib/python2.7/lib-old',
'/snap/alfanous/x4/usr/lib/python2.7/lib-dynload',
'/snap/alfanous/x4/usr/lib/python2.7/dist-packages']
Кажется, что snap не включает site-packages в PYTHONPATH, где мой целевой пакет устанавливает сам.
Поэтому мне нужно изменить его путь установки или сообщить об этом, чтобы добавить команду usr/lib/python2.7/site-packages. Связанный отчет об ошибке # 1670749: классическое ограничение требует ручной настройки PATH и PYTHONPATH. Предлагаемое решение там не срабатывало :apps:
alfanous-gui:
command: usr/bin/alfanous-desktop
environment:
PATH: $SNAP/usr/bin:$SNAP/bin/:$PATH
PYTHONPATH: $SNAP/usr/lib/python2.7/site-packages:$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
#desktop: usr/share/applications/my-app.desktop
alfanous-cli:
command: usr/bin/alfanous-console
environment:
PATH: $SNAP/usr/bin:$SNAP/bin/:$PATH
PYTHONPATH: $SNAP/usr/lib/python2.7/site-packages:$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
Из-за этого странного пути, указывающего на папку хоста /home ['/snap/alfanous/x7/usr/bin',
'/snap/alfanous/x7/usr/lib/python2.7/site-packages',
'/snap/alfanous/x7/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/dist-packages',
'/home/sneetsher/Desktop/sandbox/alfanous-snap',
'/snap/alfanous/x7/usr/lib/python2.7',
'/snap/alfanous/x7/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/snap/alfanous/x7/usr/lib/python2.7/lib-tk',
'/snap/alfanous/x7/usr/lib/python2.7/lib-old',
'/snap/alfanous/x7/usr/lib/python2.7/lib-dynload']