Bonjour,
J'ai presque terminé un petit programme écris en python. Il s'appelle Perroquet et je le gère via launchpad : https://launchpad.net/perroquet
Actuellement, je lance mon programme en utilisant ./perroquet.py directement dans le dossier source.
Comme l'application peut servir à d'autres, je souhaiterais pouvoir le diffuser via des packets et non pas uniquement dans un tar.gz dont il faut lancer le fichier à la main, sans intégration dans les menus ou autres.
Je m'étais déja amusé à faire un packet debian pour un logiciel existant, on trouve facilement des tutos, par contre, c'est facile quand il y a déja une chaine configure, make, make install qui fonctionne. Dans mon cas, je n'ai pas de makefile.
En gros, j'ai des fichiers po à compiler et à mettre dans /usr/share/locale, mon source à mettre je ne sais ou et une image à placer quelque part.
Mon problème est que ça me semble simple, mais quand j'essaye d'étudier un paquet existant d'un logiciel en python, je tombe dans l'horreur de fichiers autotools.
Mes questions sont :
- Où trouver de la doc sur l'organisation de projets python pour être linux compatible ?
- Y a t'il un gentil contributeur qui souhaite contribuer à mon projet et m'expliquer par la même occasion quelle est la manière de procéder ?
- Comment faire que les fichiers de traductions soient trouvé même sans un make install ?
Merci ! Bonne Année !
# distutils est la solution pour les modules python
Posté par dave . Évalué à 2.
Python est conçu pour être multi plate-forme et portable. Il n'y a donc pas d'organisation préférentielle à linux pour les projets python.
Y a t'il un gentil contributeur qui souhaite contribuer à mon projet et m'expliquer par la même occasion quelle est la manière de procéder ?
Je ne suis pas l'homme de la situation.
Comment faire que les fichiers de traductions soient trouvé même sans un make install ?
Je n'en ai aucune idée, mais le module standard pour empaqueter des modules python sans se prendre la tête, c'est un script setup [1] [2]. Tu peux faire des archives binaires pour windows, linux, n'importe quel système en fait. Comme conclusion, tu devrai d'abord te consacrer à rendre ton projet portable pour tous les systèmes d'exploitation que de vouloir faire quelque chose pour linux. De plus, l'organisation interne de ton logiciel (découpage en modules, en classes, etc) devrait être indépendante de la plateforme. Concernant l'organisation des fichiers .po, tu peux les mettre dans un répertoire distinct, et indiquer le chemin de ce répertoire avec le module gettext de python [3].
http://docs.python.org/distutils/index.html [1]
http://docs.python.org/distutils/setupscript.html [2]
http://docs.python.org/library/gettext.html [3]
Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.
[^] # Re: distutils est la solution pour les modules python
Posté par Frédéric Bertolus (site web personnel) . Évalué à 2.
Pour la question 1, je demandais à quelques endroits doivent être copiés les fichiers de mon projet dans l'arborescence du système lors de l'installation. D'autre part, dans le cas d'un packaging pour Debian, faut-il obligatoirement utiliser les autotools ou est-ce qu'un simple script shell avec des "cp" convient aussi ?
Pour la question 3, je me demandais comment faire pour qu'avec le même programme, les traductions fonctionnent de manière transparente si le programme est installé ou non. Par défaut, gettext va chercher les fichier mo dans /usr/share/local/fr/LC_MESSAGE/perroquet.mo ce qui convient très bien quand l'application est installé. Quand l'application n'est pas installé, les *.mo serait dans ../po et si je définis ça comme chemin, ça ne sera pas propre une fois le logiciel installé.
Concernant le coté multiplatforme et windows, je ne souhaite pas m'en occuper. J'utiliser gsstreamer qui ne doit pas être facile à faire marcher sous Windows, je n'ai pas de windows sous la main, je n'utilise pas windows chez moi et mes proches qui sont interressé par ce logiciel sont maintenant sous linux. Bref, si des windowsiens souhaitent utiliser ce logiciel, j'accepterai volontiers leur patch mais je ne consacrerai pas de temps à le faire moi même.
Concernant les scripts setup, je n'ai rien vu concernant les packets Debian qui sont ceux qui m'interessent principalement.
[^] # Re: distutils est la solution pour les modules python
Posté par dave . Évalué à 3.
http://comix.sourceforge.net/
http://comix.svn.sourceforge.net/viewvc/comix/trunk/install.(...)
http://comix.svn.sourceforge.net/viewvc/comix/trunk/src/comi(...)
Quand je fais
python src/comix.py
, j'ai la traduction française en natif.Autrement, le module distutils prend en charge l'installation d'un programme python de manière standard quelle que soit la plateforme. C'est pour cela que le programme doit seulement être portable, et qu'on peut laisser le script setup.py faire son travail (assez pratique).
Pour debian, il y a une procédure spécialisé pour empaqueter des paquets python :
http://www.debian.org/doc/packaging-manuals/python-policy/
Bon courage !
Systemd, the bright side of linux, toward a better user experience and on the road to massive adoption of linux for the desktop.
# Fini
Posté par Frédéric Bertolus (site web personnel) . Évalué à 2.
Merci pour les pistes.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.