Packaging d’application python sous maemo 5

Dans le monde java, le packaging d’application est dicté par les standard java. On fait des JAR, des WAR, des EAR… L’ecosystème étant borné par la JVM et le conteneur (web ou ejb), la question du livrable ne se pose guère. Mais en python sous linux comment fait-on ?

La première idée est de générer un paquet pour la distribution cible. En l’occurence il s’agissait de l’application Zourite pour N900. On s’oriente donc vers la création de paquet debian. La création de paquet peut se faire via l’IDE Esbox. Cependant cela n’est pas si simple et un ignorant en packaging linux-debian n’y arrive pas sans faire un petit tour sur le site de debian pour se rendre compte que la création de paquet s’apparante à la création de distribution et que c’est un rôle distinct de celui de développeur d’application.

Heureusement que python (à ma grande surprise pour un vieux langage) dispose d’un écosystème riche à la java. Python inclut un mecanisme de création de livrable par le biais du fameux fichier setup.py. Un détour par la documentation en ligne et un peu de persévérence permet d’arriver à ses fins.

Le fichier setup.py contient la description du paquet python. Il est conseillé d’avoir au préalable organisé les sources du projet en modules dans un paquet dédié. Cela permettra d’embarquer tous les fichiers dans le paquet (répertoire) d’installation. Le fichier setup.py peut installer également des scripts de lancement du programme python. Ces scripts sont eux-même des script python qui pourront changer le répertoire courant du processus pour se rendre dans le répertoire du paquet de l’application afin que l’execution se passe comme en développement.

Voici un exemple de fichier setup.py:

# -*- encoding: UTF-8 -*-
'''
Created on 30 mars 2010

@author: thierry
'''
from distutils.core import setup
setup(name='zourite',
version='0.1.0',
package_dir = {'': 'src'},
packages=['zourite',
'zourite.common',
'zourite.core',
'zourite.gui',
'zourite.plugin',
'zourite.plugin.gmail',
'zourite.plugin.linkedin'],
scripts=['scripts/zourite','scripts/zourite-setup'],
package_data={'zourite': ['*.png']},
author='Thierry Bressure',
author_email='thierry@bressure.net',
maintainer='Thierry Bressure',
maintainer_email='zourite@bressure.net',
url='http://blog.zourite.bressure.net',
download_url='http://zourite.bressure.net',
description='Zourite Professional Networking Application for N900',
long_description='Zourite is a client for professional Network like LinkedIn. You can stay connected to your contacts and manage you network.',
classifiers=[
'Development Status :: 1',
'Environment :: Hildon',
'Environment :: Maemo',
'Intended Audience :: End Users/Desktop',
'Intended Audience :: Developers',
'License :: OSI Approved :: LGPL',
'Operating System :: Maemo :: Maemo 5',
'Programming Language :: Python',
'Topic :: Communications :: Email',
'Topic :: Office/Business',
],

)

About these ads
Ce contenu a été publié dans Gestion de projet, avec comme mot(s)-clef(s) , , , , . Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à Packaging d’application python sous maemo 5

  1. Khertan dit :

    Et l’on peut creer des packages pour l autobuilder maemo avec sdist_maemo une extension au distutils : http://khertan.net/python_sdist_maemo

    Cdt,

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s