Forum Linux.général Organisation des fichiers d'un projet python en vue d'un empaquetage

Posté par (page perso) .
Tags : aucun
1
1
jan.
2010
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 . Évalué à 2.

    Où trouver de la doc sur l'organisation de projets python pour être linux compatible ?
    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 (page perso) . Évalué à 2.

      Je me suis surement mal exprimé pour deux des questions.

      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.
  • # Fini

    Posté par (page perso) . Évalué à 2.

    J'ai réussi à faire ce que je voulais. Ce fini long et difficile mais ça marche. Je vais rédiger un article explication dont je posterai un lien ici.

    Merci pour les pistes.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.