Packaging

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur : Développeurs

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 20 avr. 2013, 02:32

Apple, c'est l'enfer -- avec les coins arrondis.
Je viens de passer des heures à télécharger des versions éléphantesques de LaTeX, à aller pêcher des paquets standards à droite à gauche aux confins du web sans aucune garantie d'intégrité (très XXième siècle), même les paquets pure python aboutissent une fois sur deux sur un fail retentissant, et quand ils veulent bien s'installer c'est un coup ici, un coup là. Quasiment chaque fois que je lance setup.py (le fonctionnel de la branche develop) je tombe sur une erreur différente, des fois il me rend la main sur pdb et des fois non...
C'est vrai, j'ai voulu tenter le diable et me reposer sur les outils standards (easy_install) pour installer les packages python dispos sur PyPi, avant de me résoudre à les recompiler à la main, mais bien entendu pas de make ni de gcc. Pour installer ne serait-ce que GNU make, un programme GPL écrit par les gros gourous barbus du logiciel libre, sur une plateforme pompée sans vergogne sur BSD et dénaturée au point de n'avoir plus d'Unix que le reflet du mode "exposé", il faut installer les outils de développement d'Apple qui essaie en passant de me gratter 99$ (par an, s'il vous plaît) de support, avant que je ne trouve un lien direct vers la version gratuite via un autre site, qui me renvoie néanmoins sur l'Apple store à qui je dois décliner mon identité, mon adresse, mon lieu de naissance et cie avant d'enfin aboutir sur un bouton "installer" et d'apprendre que, désolé, Xcode ne peut être installé que sur les versions 10.7.4 et supérieures d'OSX et malheureusement je n'ai que la 10.7.3. Bien entendu, je pourrais upgrader (contre espèces sonnantes et trébuchantes, cela va de soi) si je n'étais malheureusement sur une machine virtuelle qui rend la démarche impossible.
Bref, mon après-midi dédiée à debuguer py2app s'est finalement avérée être une après-midi à debuguer OSX, et la conclusion est sans appel: c'est sans espoir, il vaut mieux abattre le bestiaux et le plus tôt sera le mieux...

PS: Désolé Yves, je suis juste un tantinet agacé mais je finirai bien par me calmer. ;-)

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 20 avr. 2013, 02:44

Sur ce, je ferme l'onglet pyromaths, je check mon courrier et je tombe là-dessus: "The earnings growth rate for the Information Technology sector is -4.0%. If Apple is excluded, the earnings growth for the sector improves to +0.2%." :D
Le hasard, des fois…

Avatar de l’utilisateur
Yves
Messages : 472
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Packaging

Message par Yves » 20 avr. 2013, 08:57

C'est vrai que MacTeX pèse 2,1 Go et pour jouer avec Pyromaths c'est beaucoup. Par contre, pour un usage régulier de laTeX, je trouve que c'est confortable d'avoir tellement de packages inclus. Sinon, il y a BasicTeX qui pèse 64 Mo. Pour la garantie d'intégrité de ton téléchargement, tu peux vérifier la somme de contrôle.

Sur le fait de tomber sur des erreurs différentes à chaque fois avec setup.py, c'est étrange, je n'ai jamais rencontré de problème similaire.

Pour make et gcc, il n'est pas nécessaire d'installer XCode, ni de passer par l'App Store, Apple met à disposition une archive avec les Command Line Tools sur le site Apple Developer (accessible après une inscription gratuite). OS X 10.7.4 minimum est requis mais l'update de 10.7.3 à 10.7.x est gratuit (c'est l'upgrade à 10.8.x qui est payant).

Sinon, il y a cette possibilité (non testée personnellement):
https://github.com/kennethreitz/osx-gcc-installer

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 20 avr. 2013, 11:29

Yves a écrit :C'est vrai que MacTeX pèse 2,1 Go et pour jouer avec Pyromaths c'est beaucoup.
2,1Go compressé avant installation. Après installation c'est plus de 4Go!
Yves a écrit :Sinon, il y a BasicTeX qui pèse 64 Mo.
Si ça suffit pour faire tourner pyromaths, je pense que ça mériterait d'être mentionné dans la doc d'installation… Dans l'état actuel des choses il faut vraiment avoir très envie d'essayer pyromaths (15Mo) pour se taper une dépendance obligatoire de 4Go, qu'on doit télécharger et vérifier à la main. :)
Yves a écrit :Pour la garantie d'intégrité de ton téléchargement, tu peux vérifier la somme de contrôle.
Oui, je sais ce qu'est un MD5. Je sais aussi qu'on est désormais capable de créer artificiellement des collisions MD5 (c'est la raison pour laquelle git utilise SHA1). Je sais enfin qu'un MD5 me confirmerait tout aussi bien que la version vérolée que je viens de télécharger (sur un site que je visite pour la première fois) n'a pas été altérée en chemin par un anti-virus: l'intégrité ça va plus loin qu'une simple somme de contrôle. Mais surtout: c'est le job d'un package manager tout ça, pas le mien! Voilà ce qui fait "très XXième siècle";-)
Sur un bête Ubuntu, il faudrait pas 5min pour installer toutes les dépendances à la main -- ce qui n'est de toute manière pas nécessaire parce que le package manager gère les dépendances de librairies tout seul. Et au pire, easy_install ferait très bien le job (la raison pour laquelle on utilise préférentiellement apt c'est pour les mises à jour automatiques).
Sur un mac, le package manager ne connaît pas ces paquets (non-monétisables, est-ce un hasard?), ne semble pas savoir gérer correctement les dépendances et arrive même à casser le package manager python qui les gérerait correctement tout seul, ce qui nous oblige à délivrer une version self-contained de pyromaths (15Mo, quand le paquet deb fait 640Ko -- sources comprises) et faire installer LaTeX manuellement à nos utilisateurs. Ça fait quand-même un peu beaucoup!
Yves a écrit :Sur le fait de tomber sur des erreurs différentes à chaque fois avec setup.py, c'est étrange, je n'ai jamais rencontré de problème similaire.
Arf, laisse tomber: j'étais en plein milieu de l'installation, il devait me manquer des paquets que j'avais installé via easy_install mais qui ne fonctionnaient pas… Par contre saurais-tu me dire pourquoi, quand python plante, je me retrouve des fois dans pdb et des fois non?
Yves a écrit :Pour make et gcc, il n'est pas nécessaire d'installer XCode, ni de passer par l'App Store, Apple met à disposition une archive avec les Command Line Tools sur le site Apple Developer (accessible après une inscription gratuite). OS X 10.7.4 minimum est requis mais l'update de 10.7.3 à 10.7.x est gratuit (c'est l'upgrade à 10.8.x qui est payant).
Oui, je l'ai lu quelque part (certainement pas sur Apple Developer qui est 90% blabla marketing que je n'ai pas le temps de lire). C'est en suivant ce lapin blanc que j'ai fini par atterrir sur l'Apple Store et Xcode en me disant «qui peut le plus peut le moins».
Mais dans un cas comme dans l'autre le problème c'est la nécessité d'avoir OSX 10.7.4: je fais tourner OSX dans une machine virtuelle, ce qui oblige à utiliser un hack pour pouvoir booter (HackBoot Mod) -- probablement une "protection" supplémentaire plus destinée à protéger le portefeuille d'Apple que ses utilisateurs. Or je suis quasiment certain que l'update vers 10.7.4 va me faire planter ce fragile équilibre.
Je vais faire une copie du disque virtuel et tenter le coup, sans trop d'espoir, seulement voilà: je n'ai qu'un disque SSD de 128Go et le disque virtuel OSX pèse déjà 14Go alors qu'il ne contient en gros que LaTeX (je ne mentionnerais pas le fait qu'une distro Linux toute intégrée -- gcc, suite bureautique et cie -- tient sur un CD de 700Mo parce que ça serait de la mauvaise langue…): je n'ai pas 30Go à consacrer à OSX, il va donc me falloir trouver un HDD externe et encore patienter de longues minutes pour copier des Go de redondances inutiles… ;-)
Yves a écrit :Sinon, il y a cette possibilité (non testée personnellement):
https://github.com/kennethreitz/osx-gcc-installer
Je vais aller voir ça tout de suite!

Encore une fois merci pour ton aide et sincèrement désolé pour mon humeur. Je n'arrive pas à m'empêcher d'être ironique, voire condescendant: franchement, je n'avais pas utilisé de plateforme aussi bringuebalante depuis Windows 98. Mais bon, je ne suis certainement pas objectif, et à chacun ses choix.
Ma première conclusion personnelle de cette expérience c'est: mon Dieu, qu'est-ce que c'est bien foutu GNU/Linux! :D

Avatar de l’utilisateur
Yves
Messages : 472
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Packaging

Message par Yves » 20 avr. 2013, 12:08

Finalement, à te lire, j'ai beaucoup de mérites à packager Pyromaths pour Mac OS X :D
Je vais demander une augmentation à Jérôme :mrgreen:

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1130
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Packaging

Message par Jérôme » 20 avr. 2013, 12:23

Yves a écrit :Finalement, à te lire, j'ai beaucoup de mérites à packager Pyromaths pour Mac OS X :D
Je vais demander une augmentation à Jérôme :mrgreen:
Et ben voyons ! :shock:
J'y songerai le jour où la comptabilité de Pyromaths sera positive. D'ici une vingtaine d'année peut-être... :)
Mais je m'aperçois de la valeur de ton travail suite au récit détaillé (et passionné) de Djinn. Sur d'autres forum, ça pourrait se finir en baston généralisée, mais Yves est d'un calme impressionnant ! :mrgreen:
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 20 avr. 2013, 17:43

Yves a écrit :Finalement, à te lire, j'ai beaucoup de mérites à packager Pyromaths pour Mac OS X :D
C'est clair! J'y suis depuis 24h et je n'arrive toujours pas à fabriquer le package pyromaths… Enfin, j'arrive à lancer l'application à partir des sources, c'est déjà ça. :D
Moi qui croyais que le gros morceau serait de mettre en place la machine virtuelle, erreur: c'est de mettre en place un environnement de développement. Au fait, ton lien pour l'install' de gcc a marché nickel (ouf!). :)

Pour l'instant, je tombe sur l'erreur suivante:
$ python setup.py py2app
running py2app
running build_py
creating /Volumes/pyromaths/scripts/mac/build/bdist.macosx-10.3-fat/python2.7-standalone/app
creating /Volumes/pyromaths/scripts/mac/build/bdist.macosx-10.3-fat/python2.7-standalone/app/collect
creating /Volumes/pyromaths/scripts/mac/build/bdist.macosx-10.3-fat/python2.7-standalone/app/temp
creating build/bdist.macosx-10.3-fat/python2.7-standalone/app/lib-dynload
creating build/bdist.macosx-10.3-fat/python2.7-standalone/app/Frameworks
Traceback (most recent call last):
  File "setup.py", line 17, in <module>
    setup_requires=['py2app'],
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/Library/Python/2.7/site-packages/py2app-0.7.3-py2.7.egg/py2app/build_app.py", line 553, in run
    self._run()
  File "/Library/Python/2.7/site-packages/py2app-0.7.3-py2.7.egg/py2app/build_app.py", line 741, in _run
    self.run_normal()
  File "/Library/Python/2.7/site-packages/py2app-0.7.3-py2.7.egg/py2app/build_app.py", line 812, in run_normal
    mf = self.get_modulefinder()
  File "/Library/Python/2.7/site-packages/py2app-0.7.3-py2.7.egg/py2app/build_app.py", line 691, in get_modulefinder
    debug=debug,
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/find_modules.py", line 274, in find_modules
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/find_modules.py", line 182, in find_needed_modules
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 673, in run_script
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 1062, in scan_code
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 1015, in scan_code
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 917, in _safe_import_hook
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 685, in import_hook
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 780, in load_tail
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 847, in import_module
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 909, in load_module
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 1062, in scan_code
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 1015, in scan_code
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 917, in _safe_import_hook
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 684, in import_hook
  File "build/bdist.macosx-10.7-intel/egg/modulegraph/modulegraph.py", line 749, in find_head_package
AssertionError
Le problème c'est que je ne trouve pas ce dossier 'build/bdist.macosx-10.7-intel'. Et que find_head_package() n'est pas du tout à la ligne 749 dans la version de modulegraph.py que je vois... :roll:
Ça te dit quelque chose?

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 20 avr. 2013, 22:24

Bon, le fameux dossier inexistant était en fait à l'intérieur d'un egg compressé. Je pouvais toujours m'épuiser à coups de find. :P
Après un gros ménage et réinstallation de quasiment toutes les dépendances de py2app, décompressées cette fois (option -Z d'easy_install), les erreurs ont l'air plus raisonnables et au moins je peux atteindre les fichiers qui bugguent. C'est pas grand chose, mais on se remonte le moral comme on peut!

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: Packaging

Message par Arnaud » 20 avr. 2013, 22:34

Si je peux me permettre : il vaut mieux utiliser pip pour installer des packages python.

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 21 avr. 2013, 01:07

Arnaud a écrit :Si je peux me permettre : il vaut mieux utiliser pip pour installer des packages python.
Oui, tu as sûrement raison. J'ai vu ça dans le n°65 hors-série de Linux Mag, notamment… Mais bon, à ce stade je dois déjà gérer distutils et setuptools, je préfère y aller mollo. "Step by Step", comme disaient les affreux New Kids On The Block! :D

Bon, à part ça j'annonce victoire sur OSX/py2app: j'arrive (enfin!) à packager un pyromaths fonctionnel avec le setup.py minimaliste suivant:
import glob
from setuptools import setup, find_packages

OPTIONS = dict(
        plist='Info.plist',
        argv_emulation=True,
        packages=['lxml'],
        includes=['gzip', 'sip', 'PyQt4'],
    )
setup(
    app         = ['../../src/pyromaths.py'],
    packages    = find_packages('../../src'),
    package_dir = {'': '../../src'},
    data_files  = ['pyromaths.icns', 'qt.conf',
                   ('data', glob.glob('../../data/*'))],
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)
Il suffit d'un lanceur tout simple (le src/pyromaths.py mentionné précédement):
from pyromaths import pyromaths
pyromaths.main()
Et il faut modifier légèrement Values.py pour qu'il puisse trouver les data_files dans leur position "naturelle" (Resources/data):
@@ -17,4 +17,10 @@ def data_dir():
     sources, de l'exécutable win32 ou du paquet deb"""
-    if we_are_frozen(): return join(normpath(dirname(unicode(executable,
-                                             getfilesystemencoding()))), 'data')
+    if we_are_frozen():
+        if   sys.platform == 'win32':
+            path = 'data'
+        elif sys.platform == 'darwin':
+            path = '../Resources/data'
+        return join(normpath(dirname(unicode(executable,
+                                             getfilesystemencoding()))), path)
+    # We're alive
     data = join(abspath(dirname(__file__)),'../../data/')
Seul souci: ça plante (avec un file not found) au moment de l'appel à LaTeX pour transformer les fichiers tex qui viennent d'être créés. Plutôt étrange, non? Yves, si tu as une idée, je m'en remets à toi…

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 21 avr. 2013, 01:33

djinn a écrit :Seul souci: ça plante (avec un file not found) au moment de l'appel à LaTeX pour transformer les fichiers tex qui viennent d'être créés. Plutôt étrange, non? Yves, si tu as une idée, je m'en remets à toi…
Ah bein je crois que j'ai trouvé: comme je n'utilise pas standalone.sh, il manque setenv.sh et tout appel à un processus externe plante…
Bon allez, j'ai bien mérité mon gros dodo, moi! :P

Avatar de l’utilisateur
Yves
Messages : 472
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Packaging

Message par Yves » 21 avr. 2013, 10:01

Bravo pour cette belle avancée ! :)

Pourrais-tu préciser les modifications que tu as faites, pour avoir un environnement de développement fonctionnel, par rapport au tutoriel que je t'avais indiqué ?

Sur ma configuration, avec tes dernières propositions, je suis obligé de forcer l'inclusion de '../../src/pyromaths':
import glob
from setuptools import setup, find_packages
 
OPTIONS = dict(
        plist='Info.plist',
        argv_emulation=True,
        packages=['lxml'],
        includes=['gzip', 'sip', 'PyQt4'],
    )
setup(
    app         = ['../../src/pyromaths.py'],
    packages    = find_packages('../../src'),
    package_dir = {'': '../../src'},
    data_files  = ['pyromaths.icns', 'qt.conf', '../../src/pyromaths',
                   ('data', glob.glob('../../data/*'))],
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)
Un autre détail: le fait d'inclure glob.glob('../../data/*') importe inutilement les fichiers pyromaths-banniere.png, pyromaths.ico et le dossier linux.

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 21 avr. 2013, 10:57

Yves a écrit :Pourrais-tu préciser les modifications que tu as faites, pour avoir un environnement de développement fonctionnel, par rapport au tutoriel que je t'avais indiqué ?
Comme tu as pu t'en rendre compte (merci encore pour ta patience et ton calme!) j'ai tellement galéré, bidouillé, recompilé, réinstallé qu'il est difficile pour moi au final de répondre à cette question… Le mieux serait probablement que je fabrique un environnement virtuel python (via virtualenv) afin de m'assurer de ce qui tourne précisément.
Malheureusement, il y a plusieurs choses dans cette doc qui ne sont plus à jour: lien lxml mort (j'ai utilisé easy_install), versions de paquets qui ne sont plus disponibles…
D'un point de vue général, j'ai essayé d'utiliser les dernières versions disponibles, en rétrogradant petit à petit quand j'étais confronté à une incompatibilité (ex: PyQt ne supportait pas Qt-4.8.x). Bref, j'ai joué au package manager en essayant par essai-erreur de redécouvrir le savoir qu'il devrait intégrer; un jeu plutôt long et fastidieux qui m'a pas mal énervé ;-). J'utilise notamment le dernier python-2.7, les derniers setuptools, py2app et lxml (installés via easy_install).
Mais au final, je pense que ça devrait quand-même fonctionner avec ton environnement éprouvé. N'hésite pas à poser des questions plus spécifiques si ce n'est pas le cas. :-)
Yves a écrit :Sur ma configuration, avec tes dernières propositions, je suis obligé de forcer l'inclusion de '../../src/pyromaths':
Deux remarques:
  • Je n'ai aucun de nos fichiers python (à part le nouveau lanceur) dans Resources: ils sont seulement dans l'archive Resources/lib/python2.7/site-packages.zip, et ça marche très bien comme ça (un peu comme un egg python, en fait).
  • Si ça ne fonctionne pas de cette manière chez toi, tu as probablement besoin d'installer le plugin setuptools-git: sudo easy_install setuptools-git ou similaire.
Yves a écrit :Un autre détail: le fait d'inclure glob.glob('../../data/*') importe inutilement les fichiers pyromaths-banniere.png, pyromaths.ico et le dossier linux.
En effet, j'anticipe sur la prochaine étape: comme j'ambitionne d'utiliser un seul setup.py pour tout notre packaging, je compte modifier légèrement l'arborescence afin d'éviter les redondances disgracieuses.
Par exemple, en mettant tous les data_files communs à toutes les plateformes dans un dossier (data/ ici, mais peut-être que data/common/ serait plus pertinent?), et ceux spécifiques à chaque plateforme dans leur dossier respectif. De cette manière, le tuple ('data', glob('../../data/*')) ne figurera qu'une seule fois. J'espère être assez clair: en gros, je veux factoriser l'inclusion des data_files communs à toutes les plateformes…
En l'occurrence, si on voulait respecter l'esprit de distutils à la lettre, il y a beaucoup de fichiers aujourd'hui contenus dans data/ qui ne sont pas des data_files stricto sensu mais plutôt des package_data (les images-vignettes d'exercice, par exemple).
Dernière modification par djinn le 21 avr. 2013, 11:24, modifié 1 fois.

Avatar de l’utilisateur
Yves
Messages : 472
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Packaging

Message par Yves » 21 avr. 2013, 11:23

OK merci pour tes précisions.

J'ai installé setuptools-git avec des avertissements:
$ sudo easy_install setuptools-git
Password:
Searching for setuptools-git
Reading http://pypi.python.org/simple/setuptools-git/
Reading https://github.com/wichert/setuptools-git
Best match: setuptools-git 1.0b1
Downloading http://pypi.python.org/packages/source/ ... ff93b4e90d
Processing setuptools-git-1.0b1.tar.gz
Running setuptools-git-1.0b1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-vPbnkN/setuptools-git-1.0b1/egg-dist-tmp-zPbyFO
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'mainainer'
  warnings.warn(msg)
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'mainainer_email'
  warnings.warn(msg)
Adding setuptools-git 1.0b1 to easy-install.pth file

Installed /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools_git-1.0b1-py2.6.egg
Processing dependencies for setuptools-git
Finished processing dependencies for setuptools-git
L'installation de setuptools-git n'a pas solutionné le problème. Dans Resources/lib/python2.7/site-packages.zip/pyromaths/, je n'ai, comme avant, que les fichiers __init__.pyc, interface.pyc, pyromaths.pyc, Values.pyc et le dossier outils, également incomplet.

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: Packaging

Message par djinn » 21 avr. 2013, 11:53

Yves a écrit :OK merci pour tes précisions.
Au cas où, je viens d'éditer mon post pour en rajouter.
Yves a écrit :J'ai installé setuptools-git avec des avertissements:
$ sudo easy_install setuptools-git
(…)
Running setuptools-git-1.0b1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-vPbnkN/setuptools-git-1.0b1/egg-dist-tmp-zPbyFO
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'mainainer'
  warnings.warn(msg)
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'mainainer_email'
  warnings.warn(msg)
Je pense qu'il s'agit de deux "nouvelles" options (maintainer et maitainer_email) de setuptools. J'imagine que ta version est trop ancienne.
Ou alors ce sont des "nouvelles" options distutils, auquel cas utiliser python-2.7 résoudrait peut-être le problème?
Yves a écrit :
Installed /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/setuptools_git-1.0b1-py2.6.egg
Pour info, mes eggs python s'installent dans /Library/Python/2.7/sites-packages/:
$ ls -l /Library/Python/2.7/site-packages/
total 424
drwxr-xr-x  23 root     wheel    782 20 avr 16:32 PyQt4
-rw-r--r--   1 root     wheel    119 28 mar  2012 README
drwxr-xr-x   4 root     wheel    136 20 avr 22:11 altgraph-0.10.2-py2.7.egg
-rw-r--r--   1 root     wheel    410 20 avr 22:11 easy-install.pth
-rw-r--r--   1 root     wheel  10240 20 avr 21:35 ez_setup.py
drwxr-xr-x   4 root     wheel    136 20 avr 12:59 lxml-3.1.2-py2.7-macosx-10.7-intel.egg
drwxr-xr-x   4 root     wheel    136 20 avr 22:10 macholib-1.5.1-py2.7.egg
drwxr-xr-x   4 olivier  wheel    136 20 avr 22:10 modulegraph-0.10.4-py2.7.egg
drwxr-xr-x   4 olivier  wheel    136 20 avr 22:10 py2app-0.7.3-py2.7.egg
drwxr-xr-x  10 root     wheel    340 20 avr 22:07 setuptools-0.6c12dev_r88846-py2.7.egg
-rw-r--r--   1 root     wheel     40 20 avr 22:07 setuptools.pth
drwxr-xr-x   4 root     wheel    136 20 avr 22:08 setuptools_git-1.0b1-py2.7.egg
-rwxr-xr-x   1 root     wheel  86044 20 avr 12:47 sip.so
-rw-r--r--   1 root     wheel  95689 20 avr 12:47 sipconfig.py
-rw-r--r--@  1 root     wheel   6041 20 avr 12:47 sipdistutils.py
Si je me souviens bien, j'ai modifié le path pour obliger l'usage prioritaire du easy_install fourni par la nouvelle installation de python (que tu conseillais dans ton tuto): /usr/local/bin/easy_install, à la place de celui fourni par OSX.
Note que j'utilise toujours easy_install avec l'option -Z pour qu'il me décompresse les eggs et que je puisse aller voir/modifier le code au besoin, ce qui m'a été utile une fois suite à un bug de modulegraph sur le package outils (ça doit être le premier qu'il traite) qui faisait planter la "compil" (une failed assertion: parent!=new_parent).
Yves a écrit :L'installation de setuptools-git n'a pas solutionné le problème. Dans Resources/lib/python2.7/site-packages.zip/pyromaths/, je n'ai que les fichiers __init__.pyc, interface.pyc, pyromaths.pyc, Values.pyc et le dossier outils, également incomplet.
Ça sent le modulegraph qui plante ça… À un moment, je me suis arrangé pour enlever py2app et toutes ses dépendances afin de récupérer leur dernière version à la réinstallation.
Sinon, pour débugguer le job de modulegraph tu dois pouvoir utiliser l'option --graph (-g) de py2app.

Répondre