Как настроить PYTHONPATH для оснастки?

Я пытаюсь привязать пакет к нечистому проекту 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

3
задан 18 April 2017 в 16:27

4 ответа

Я изменил 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']
0
ответ дан 18 July 2018 в 14:43

Я изменил 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']
0
ответ дан 24 July 2018 в 20:27

Я изменил 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']
0
ответ дан 31 July 2018 в 13:50

Я изменил 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']
0
ответ дан 31 July 2018 в 23:30

Другие вопросы по тегам:

Похожие вопросы: