« Distribuer un projet en python » : différence entre les versions

Contenu supprimé Contenu ajouté
Un livre sur le paquetage python
 
+ environnement virtuel
Ligne 11 :
Pour résumer après avoir exécuté site.py, on peut simplement importer tout module tiers dans ses projets, sans avoir besoin d'avoir ces dits modules dans la même arborescence que le projet en question, mais au lieu de cela dans un environnement virtuel, dans un dossier utilisateur (/home sur unix, AppData sur windows...), ou dans un dossier de python lui même.
 
== Environnement virtuel ==
 
Nous avons vu que le système de site-packages est compatible avec les environnement virtuels par le biais du script site.py, et qu'il est fortement conseillé que cet environnement contienne la totalité de ce qui est nécessaire pour que votre module soit exécutable par des tiers une fois ''pip''é, easy-installé, etc. Pour s'assurer de cela la ligne <code>include-system-site-packages = false</code> dans le fichier pyenv.cfg peut éviter des maladresses et laisser à croire que votre module fonctionne, mais qu'il dépende d'un environnement extérieur au module.
 
La manière dont vous décrivez ces environnement est propre à chaque outil, nous allons décrire celui de pip, qui est l'outil recommandé par python et désormais inclus par défaut dans les distributions python, si vous ne l'avez pas, vous pour l'obtenir avec la commande <code>python get-pip.py</code>, vous pouvez soit taper taper la commande <code>pip</code> directement dans une invite de commande, soit, ce qui est préférable le lancer via python <code>python -m pip</code>. Si vous lancez pip sans argument vous verrez une liste de commandes qu'il peut exécuter, celles qui nous intéressent sont <code>install</code> et <code>freeze</code>. <code>freeze</code> affiche la liste des modules tiers dans le site-packages en cours, dans un format que la commande <code>pip install</code> peut comprendre. La manière la plus pratique pour conserver une trace de ces noms de modules est la syntaxe suivant <code>python -m pip freeze > requirements.txt</code>. Ce nom de fichier est normalisé et il est recommandé de toujours l'utiliser. Un utilisateur tiers pourra alors imiter votre environnement simplement en tapant la commande <code>python -m pip install -r requirements.txt</code>, de préférence en ayant créé et activé un environnement virtuel au préalable, dans le même souci d'avoir un environnement reproductible, et de ne pas polluer la commande <code>pip freeze</code> si il souhaite lui aussi participer à votre module. Pour que cela soit possible il faut que le fichier requirements.txt – qui n'a de sens que pour pip – soit inclus avec votre module, on parlera alors plutôt de « '''paquetage''' », en anglais ''package'', car notre projet contient autre chose qu'un simple script en python.
 
[[Catégorie:Python]]