Est-il un moyen standard pour créer des paquets Debian pour la distribution de Python programmes?

Il y a une tonne d'informations sur la façon de le faire, mais depuis "il n'y a plus d'une façon à la peau d'un chat", et tous les tutos/guides qui couvrent un peu les processus semblent faire certaines hypothèses qui sont différents des autres tutoriels, je ne l'ai toujours pas réussi à la saisir.

Jusqu'à présent c'est ce que je crois que j'ai compris.

  1. Mon objectif final devrait être celui de la création d'un "binaire" .paquet deb. Ce dernier pourra être indépendant de la plateforme (32/64 bits), tous les programmes Python sont de telles.
  2. Pour créer un "binaire" paquet j'ai besoin d'abord de créer un paquet source.
  3. Pour créer le paquet source, je peux utiliser CDBS ou debhelper. Debhelper est le moyen recommandé pour les débutants.
  4. La base de la création d'un paquet source est le remplissage de la DEBIAN répertoire dans le répertoire source avec un certain nombre de fichiers de préciser les endroits où les fichiers doivent être copiés, ce que le droit d'auteur et le régime d'autorisation ils sont soumis, les dépendances de la ils ont, etc...
  5. Étape #4 peut être largement automatisé de la dh_makecommande si la source Python est également livré avec un distutils' setup.py script.

Maintenant mes questions:

  1. Est ma compréhension du processus? Est-ce que je suis absent, ou quoi que ce soit que j'ai eu tort?
  2. Étape #5 est vraiment la plus déroutante pour moi: plus précisément, les deux points qui reste le plus obscur pour moi sont:
    • Comment puis-je écrire un setup.py script installer un stand-alone programme? EDIT: Par programme autonome je veux dire un programme destiné à être utilisé par un utilisateur de bureau (par opposition à une module que je comprends comme une collection de fonctionnalités pour être utilisé par d'autres logiciels après avoir été importés). Dans mon cas précis je voudrais réellement besoin deux ces "programmes": le logiciel principal et un autre utilitaire (en effet un deuxième "programme" qui devrait être dans le même package avec l'autre).
    • Quelles sont les spécificités d'un script pour les paquets DEB? La documentation officielle ne semble traiter avec les RPM et Windows trucs...

BTW: Ces sont les meilleures sources d'information que j'ai pu trouver moi-même jusqu'à présent. Si vous avez quelque chose de mieux que cela, s'il vous plaît partager! 🙂

  • Avant de vous peut préparer un programme en python pour les paquets binaires, vous devez la préparer pour une distribution générale. C'est le setup.py peu. Ceci est comparable à la autotools étape de nombreux GNU C/C++ par les projets, mais spécifique à python. C'est plus facile qu'il n'y paraît, lire docs.python.org/distutils/index.html
  • Merci, j'ai déjà eu l'idée générale (ma formulation est peut-être incorrect, mais c'est la partie 5 de la procédure que je décris). Ce qui est déroutant pour moi, c'est que dans la documentation officielle, je ne pouvais pas trouver explicitement un how-to sur la façon de distribuer programmes autonomes plutôt que de modules. Peut-être que c'est juste un problème de terminologie et de ce que j'appelle la "autonomes" sont un type spécifique de modules?
  • Vous pouvez installer des scripts, c'est à dire les fichiers exécutables pour démarrer votre programme. Voir docs.python.org/distutils/setupscript.html#installing-scripts
  • J'ai lu qu'avant, mais je suis encore confus: mon programme a un main.py fichier (je suppose que vous pourriez l'appeler "script") ET une série de modules ET de certaines autres DONNÉES et fichiers SVG... je suis toujours des difficultés à trouver une documentation claire sur la manière d'y parvenir. Le meilleur que j'ai pu trouver jusqu'à présent est la distutils tutoriel ce qui me reste à étudier...
  • Par programme autonome voulez-vous dire quelque chose qui n'aura pas de python comme une dépendance? Les dernières versions de Debian et Ubuntu viennent tous deux avec au moins la version 2.6 de python, donc si vous code est de 2,6 compatible, un "programme autonome" peut en fait être juste un cas particulier d'un module, comme vous l'avez suggéré.
  • Merci pour repérer l'ambiguïté de ma terminologie, j'ai essayé de clarifier par l'édition de l'original de la question ci-dessus.
  • Faire un petit python/script shell qui lance votre programme. Cela pourrait être aussi simple que de python /path/to/program.py. Le rendre exécutable et de le mettre quelque part, comme /usr/local/bin. Cela devrait être suffisant pour obtenir le comportement que vous voulez.
  • Oui, tout cela devrait être possible. Votre main.py est un script, vos autres fichiers Python sont probablement un paquet (ou plusieurs paquets). Le YAML et fichiers SVG sont soit forfait de données ou de fichiers de données.
  • Je pense que ce que vous voulez faire est quelque chose de commun dans Debian, mais pas pris en charge nativement par distutils: Avoir une application composée de modules et un coureur de script, sans avoir les modules installés et rendu public en site-packages. Gajim par exemple n'est que par l'installation des modules dans /usr/share/gajim et l'édition de sys.chemin dans le script runner.
  • Il semble que Ubuntu référence a déplacé et est maintenant "obsolète". Mais je n'ai pas détecter une explication des raisons pour lesquelles il est considéré comme obsolète.
  • double possible de Comment dois-je faire Debian emballage d'un paquet Python?

InformationsquelleAutor mac | 2011-08-18