MODIFIER : Il semble que le but du setup.py est de produire un package pour Mac OSX avec py2app
. La question est donc maintenant : Comment empêcher le plugin python de snapcraft d'appeler setup.py ?
Je cherche à créer un snap pour une application python, à la fois pour apprendre snap, et parce que cette application n'existe que sous forme de paquet deb 14.04, qui ne s'installera pas sur mon système plus récent. Remarquez que je suis assez nouveau en python et totalement nouveau en snaps...
L'application est Iramuteq, provenant de iramuteq.org
Le fichier de package control
existant ressemble à ceci :
Source: iramuteq
Standards-Version: 0.1.8
Section: science
Priority: extra
Maintainer: Pierre Ratinaud
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
Donc, si je comprends bien, j'ai besoin de certaines bibliothèques python, et je devrais intégrer le package r-cran-rgl.
Voici le fichier snapcraft.yaml
que j'ai créé :
name: iramuteq # vous voulez probablement 'snapcraft register '
version: '0.7-alpha2' # juste pour les humains, généralement '1.2+git' ou '1.3.2'
summary: INTERFACE R pour l'analyse multidimensionnelle des textes et questionnaires # résumé long de 79 caractères
description: |
IRAMUTEQ est un logiciel sous licence GNU GPL (v2) qui fournit aux utilisateurs
une analyse statistique sur un corpus de texte et des tableaux composés par individus/mots.
Il est basé sur le logiciel R et sur le langage python.
grade: devel # doit être 'stable' pour être publié dans les canaux candidat/stable
confinement: devmode # utiliser 'strict' une fois que vous avez les bons plugs et 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)
En exécutant snapcraft
, je reçois l'erreur suivante :
Processing /home/franck/iramuteq/snap/parts/iramuteq/src
Le lien est un répertoire, en ignorant download_dir
Sortie complète de la commande python setup.py egg_info:
avertissement : aucun répertoire correspondant à 'doc/_static' n'a été trouvé
avertissement : aucun répertoire correspondant à 'doc/_templates' n'a été trouvé
avertissement : aucun fichier précédemment inclus correspondant à '.DS_Store' n'a été trouvé dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à '*.pyc' n'a été trouvé dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à '*.pyo' n'a été trouvé dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à '*.so' n'a été trouvé dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à '*.dSYM' n'a été trouvé dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à '*.dSYM/*' n'a été trouvé dans la distribution
avertissement : aucun fichier précédemment inclus correspondant à '*__pycache__*' n'a été trouvé dans la distribution
aucun répertoire précédemment inclus correspondant à 'examples/*/build' n'a été trouvé
aucun répertoire précédemment inclus correspondant à 'examples/*/dist' n'a été trouvé
aucun répertoire précédemment inclus correspondant à 'examples/*/*/build' n'a été trouvé
aucun répertoire précédemment inclus correspondant à 'examples/*/*/dist' n'a été trouvé
aucun répertoire précédemment inclus correspondant à 'examples/*/*/*/build' n'a été trouvé
aucun répertoire précédemment inclus correspondant à 'examples/*/*/*/dist' n'a été trouvé
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-9UlL_H-build/setup.py", line 21, in
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("Le script de configuration s'est terminé avec %s" % (v.args[0],))
distutils.errors.DistutilsError: Le script de configuration s'est terminé avec une erreur : Cette distribution n'est prise en charge que sur MacOSXdistuitls error.
----------------------------------------
Commande "python setup.py egg_info" a échoué avec le code d'erreur 1 dans /tmp/pip-9UlL_H-build/
Maintenant, je suis bloqué avec une erreur de distutils... et je ne suis pas sûr non plus si R sera (devrait être ?) intégré à mon snap, ou installé sur mon système principal.