Создавание python2 привязывается с snapcraft, Python setup.py egg_info ошибка

Править: Кажется, что setup.py цель состоит в том, чтобы произвести пакет для MAC OSX с py2app. Таким образом, вопрос теперь: Как я предотвращаю snapcraft плагин Python для вызова setup.py?

Я пытаюсь создать снимок для приложения Python, и изучить снимок, и потому что это приложение только существует как 14,04 deb пакетов, которые не установят в моей более свежей системе. Заметьте, что я довольно плохо знаком с Python и полностью плохо знаком со снимками...

Приложением является Iramuteq из iramuteq.org

Существующий deb пакет control файл похож на это:

Source: iramuteq
Standards-Version: 0.1.8
Section: science
Priority: extra
Maintainer: Pierre Ratinaud <ratinaud@univ-tlse2.fr>
Build-Depends: debhelper (>= 7)
Homepage: http://www.iramuteq.org

Package: iramuteq
Architecture: all
Depends: python (>= 2.7), r-base (>= 3.0.0), python-wxgtk2.8 (>= 2.8), python-xlrd (>= 0.6), python-ooolib, r-cran-rgl (>= 0.79)
Description: Interface de R pour les analyses multidimensionnelles

Так, насколько я понимаю мне нужны некоторые библиотеки Python, и я должен встроить r-cran-rgl пакет.

Вот snapcraft.yaml файл я придумал:

name: iramuteq # you probably want to 'snapcraft register <name>'
version: '0.7-alpha2' # just for humans, typically '1.2+git' or '1.3.2'
summary: R INTERFACE for multidimensional analysis of texts and questionnaires # 79 char long summary
description: |
  IRAMUTEQ is a GNU GPL (v2) licensed software that provides users with
  statistical analysis on text corpus and tables composed by individuals/words. 
  It is based on R software and on python language.
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: devmode # use 'strict' once you have the right plugs and slots

apps:
  iramuteq:
    command: iramuteq

parts:
  iramuteq:
    source: http://www.iramuteq.org/git/iramuteq
    source-type: git
    plugin: python
    python-version: 'python2'
    python-packages:
      - ooolib
      - xlrd
      - wxgtk2.8
    stage-packages:
      - r-base # (>= 3.0.0)
      - r-cran-rgl  #(>= 0.79)

Выполнение snapcraft, Я получаю следующую ошибку:

Processing /home/franck/iramuteq/snap/parts/iramuteq/src
  Link is a directory, ignoring download_dir
    Complete output from command python setup.py egg_info:
    warning: no directories found matching 'doc/_static'
    warning: no directories found matching 'doc/_templates'
    warning: no previously-included files matching '.DS_Store' found anywhere in distribution
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    warning: no previously-included files matching '*.pyo' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
    warning: no previously-included files matching '*.dSYM' found anywhere in distribution
    warning: no previously-included files matching '*.dSYM/*' found anywhere in distribution
    warning: no previously-included files matching '*__pycache__*' found anywhere in distribution
    no previously-included directories found matching 'examples/*/build'
    no previously-included directories found matching 'examples/*/dist'
    no previously-included directories found matching 'examples/*/*/build'
    no previously-included directories found matching 'examples/*/*/dist'
    no previously-included directories found matching 'examples/*/*/*/build'
    no previously-included directories found matching 'examples/*/*/*/dist'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-9UlL_H-build/setup.py", line 21, in <module>
        setup_requires=['py2app'],
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/usr/lib/python2.7/distutils/core.py", line 111, in setup
        _setup_distribution = dist = klass(attrs)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/setuptools/dist.py", line 317, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/setuptools/dist.py", line 372, in fetch_build_eggs
        replace_conflicting=True,
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/pkg_resources/__init__.py", line 851, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1123, in best_match
        return self.obtain(req, installer)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1135, in obtain
        return installer(requirement)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/setuptools/dist.py", line 440, in fetch_build_egg
        return cmd.easy_install(req)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 674, in easy_install
        return self.install_item(spec, dist.location, tmpdir, deps)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 700, in install_item
        dists = self.install_eggs(spec, download, tmpdir)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 881, in install_eggs
        return self.build_and_install(setup_script, setup_base)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1120, in build_and_install
        self.run_setup(setup_script, setup_base, args)
      File "/home/franck/iramuteq/snap/parts/iramuteq/install/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1108, in run_setup
        raise DistutilsError("Setup script exited with %s" % (v.args[0],))
    distutils.errors.DistutilsError: Setup script exited with error: This distribution is only supported on MacOSXdistuitls error.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-9UlL_H-build/

Теперь, я застреваю с distutils ошибкой..., и я также не уверен, если R будет (должен?) быть встроенным в мой снимок или установленным в моей основной системе.

2
задан 15 April 2017 в 12:56

1 ответ

Ну, Вы объявили plugin: python так верный snapcraft с попыткой работать setup.py. Используйте другой плагин, как make если тот проект имеет a Makefile. BTW, make должен работать в основном make; make install

Однако прежде, чем сделать это, проверьте debian/rules файл, который является make-файлом для исходного пакета Debian. Посмотрите, как они действительно сделали предыдущую сборку.

Обновление: Я просто проверил debian/rules файл, это содержит ручные команды установки.

Опции, которые могут работать на Ваш случай:

  1. dump (или УДЕРЖАННЫЙ ОТ ИСПОЛЬЗОВАНИЯ copy) плагин.

  2. Иначе помогите восходящему проекту сделать setup.py работы для GNU/Linux также или добавляют a Makefile .

  3. (Мог быть лучший выбор), Использование любой разъем, за который Вы любите с пользовательскими командами: prepare:, build: & install: от Плагинов - Общие ключевые слова

Это, рекомендуют включать все необходимые двоичные файлы (как R), таким образом, это не повредится на обновлениях и когда строгое примененное заключение.

Ответить:

Когда первый показ, приложение устанавливает плагины R с помощью R собственную систему пакета. Это может быть обработано со Снимком?

Да.

  • Если те пакеты четко определены на сборке, опция 2 и 3 позволяет использовать команду R, чтобы установить и включать их в поспешный пакет.

  • Если те пакеты могли бы быть только установлены на времени выполнения, то установленный R для использования SNAP_COMMON или SNAP_DATA которые перезаписываемы после развертывания. снимок смонтирует ядро как только для чтения.

Могут быть другие опции, я все еще рою, чтобы понять, как снимок работает.

1
ответ дан 2 December 2019 в 04:50

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

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