Packager ses scripts Python
Bon nombre de gens utilise python pour faire de petits scripts. Le problème c'est que pour les distribuer, ensuite, c'est pas le top.
Heureusement il y a distutils !!
distutils est un paquet inclus dans les distributions python permettant de créer des paquet python.
Le principe est simple. On englobe un module python dans un paquet contenant un fichier setup.py
Le plus simple est d'utiliser paste pour créer son paquet. Renseignez bien les information demandées. Elles seront visible si vous décidez de distribuer votre paquet par la suite. Donc:
$ easy_install -U Paste $ paster create monscript $ cd monscript $ ls monscript/ monscript.egg-info/ setup.cfg setup.py
Ceci nous créer un répertoire monscript contenant un setup.py et un sous répertoire destiné à recevoir le code python.
Nous devons maintenant créer un point d'entrée pour notre script. Pour cela, nous allons modifier monscript/__init__.py pour qu'il ressemble à ça:
def main():
print 'Yeah !'
Ensuite, en modifiant le fichier setup.py, nous pouvons associer ce point d'entrée à un véritable script qui sera installé à l'installation du paquet. Modifiez la section entry_points du setup.py pour qu'il ressemble à quelque chose du du genre:
entry_points="""
# -*- Entry points: -*-
[console_scripts]
mon_super_script = monscript:main
""",
Voilà, le tour est joué. Alors, pourquoi tout cela pour un simple script ? C'est simple. Vous pouvez maintenant aisément le distribuer.
Voici les principales commandes qui vous serons utiles:
créer un tarball:
$ python setup.py sdist
créer un egg:
$ python setup.py bdist_egg
rendre le paquet disponible sur pypi:
$ python setup.py sdist bdist_egg register upload
Un utilisateur lambda pourra ensuite l'installer simplement:
via le tarball:
$ wget http://exemple.com/monscript-0.1.tar.gz $ tar monscript-0.1.tar.gz $ cd monscript $ python setup.py install
via pypi:
$ easy_install -U monscript
Moralité, distutils rends la vie plus facile.