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

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 68 :
Cela inclura automatiquement le fichier __init__, pas besoin d'écrire <code>setup(py_modules=['toto', 'a.b.toto', 'a.b.__init__])</code>. Ces noms d'import doivent obligatoirement référencer des fichiers qui existent et se terminent par .py, se trouvent dans un répertoire contenant un fichier <code>__init__</code>. <code>py_modules</code> n'est pas compatible avec des fichiers non python (readme, ...) ou compressés (pyo, pyc) ou des paquetages PEP420.
 
L'option <code>packagepackages</code> est plus complexe à écrire, mais permet d'inclure tout type de fichier et d'utiliser une syntaxe de <code>glob</code><ref name="">https://docs.python.org/3/library/glob.html#glob.glob</ref>ing pour inclure rapidement des répertoires entiers de fichiers dans la librairie. Si on veut inclure les mêmes fichiers qu'avec <code>py_modules</code>, mais en plus un README, et des fichier en python compilés et de typage dans le répertoire a > b, on écrit
<nowiki>setup(packagepackages=['a.b'], package_data={'': ['README'], 'a.b': ['*.pyi', '*.pyc']}</nowiki>
<code>packagepackages</code> prend une liste de répertoires à chercher pour y trouver des fichiers en python, Si on veut ajouter d'autres fichiers que des scripts en python, on doit utiliser <code>package_data</code> qui prend un dictionnaire de champs nom de package -> liste de globs à appliquer. Le champ au nom vide <code><nowiki>''</nowiki></code> s'applique à tous les packages et à la racine du projet.
 
== Références ==