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

Contenu supprimé Contenu ajouté
Ligne 116 :
python setup.py bdist_egg # a condition d'importer setuptools dans setup.py
 
Une fois l'egg produit, on peut l'installer en faisant pointer easy_install dessus, <code>easy_install d:chemin/vers/le/fichier/egg</code>, l'uploader sur pypi, le champ <code>name</code> de <code>setup()</code> est utilisé comme clé doit être unique et ne pas être déjà utilisé, ce qui permet à tout le monde d'installer son module avec <code>easy_install <name></code>. La documentation du format egg peut se trouver [http://peak.telecommunity.com/DevCenter/PythonEggs ici] et [http://svn.python.org/projects/sandbox/trunk/setuptools/doc/formats.txt ici], ce format est toutefois obsolète.
 
== Découverte de packages ==
 
Avec distutils, MANIFEST.in ne sert que pour les distributions source, et <code>package_data</code> pour les installations, ce qui entraine une redondance. Setuptools ajoute une option booleene <code>include_package_data</code><ref name="">https://github.com/pypa/setuptools/commit/4cd66c4147bef3ee8096f7161d407fb37582f1c9</ref> de sorte que le fichier MANIFEST.in soit le seul à être utilisé, pour le paquetage et pour l'installation finale, ce qui déprécie <code>package_data</code>. L'usage de package_data a toutefois été rétabli plus tard pour permettre de n'installer des fichiers que lors d'une installation et non lors d'une distribution source, depuis une arborescence complète récupérée depuis git<ref>https://github.com/pypa/setuptools/commit/d98923012</ref>, il devient aussi possible d'exlure des fichiers <code>glob</code>és par package_data, de la même manière que <code>distutils</code> via MANIFEST.in<ref>https://docs.python.org/fr/3/distutils/commandref.html#sdist-cmd</ref>, avec l'argument <code>exclude_package_data</code>. Pour éviter la redondance, l'usage exclusif de MANIFEST.in est recommandé.
 
== Références ==