Le guide "Python Distribute" (qui était sur python-distribute.org, mais cet enregistrement a expiré) me dit d'inclure doc/txt
fichiers et .py
les fichiers sont exclus dans MANIFEST.in
fichier
Le documentation source me dit que sdist utilise MANIFEST.in
et n'inclut que le fichier que vous spécifiez et à inclure .py
des dossiers. Il me dit aussi d'utiliser: python setup.py sdist --manifest-only
pour générer un MANIFEST
, mais python me dit que cela n'existe pas
J'apprécie qu'il s'agisse de différentes versions de python et le système de distribution est dans un désordre complet, mais en supposant que j'utilise python 3 et setuptools
(le nouveau qui inclut distribuer, mais maintenant appelé setuptools, et non les anciens outils setuptools qui étaient obsolètes pour les outils de distribution uniquement pour être ramenés en distribution et redistribués à setuptools .....)
et je suis la structure de dossiers 'standard' et setup.py
fichier,
MANIFEST.in
?Non, vous n'êtes pas obligé d'utiliser MANIFEST.in
. distutils
et setuptools
incluent tous les fichiers mentionnés dans le package de distribution source dans setup.py
- modules, package python, README.txt
et test/test*.py
. Si c'est tout ce que vous voulez dans le paquet de distribution, vous n'êtes pas obligé d'utiliser MANIFEST.in
.
Si vous voulez manipuler (ajouter ou supprimer) des fichiers par défaut à inclure, vous devez utiliser MANIFEST.in
.
La procédure est simple:
Assurez-vous, dans votre setup.py
vous incluez (au moyen de setup
arguments) tous les fichiers que vous jugez importants pour l'exécution du programme (modules, packages, scripts ...)
Clarifiez s'il y a des fichiers à ajouter ou des fichiers à exclure. Si ni est nécessaire, alors il n'est pas nécessaire d'utiliser MANIFEST.in
.
Si MANIFEST.in
est nécessaire, créez-le. D'habitude, vous ajoutez y tests*/*.py
des dossiers, README.rst
si vous n'utilisez pas README.txt
, docs
et éventuellement des fichiers de données pour la suite de tests, si nécessaire.
Par exemple:
include README.rst
include COPYING.txt
Pour le tester, lancez python setup.py sdist
, et examinez l'archive créée sous dist/
.
En comparant la situation d’aujourd’hui à celle d’il ya deux ans - la situation est bien meilleure - setuptools
est la voie à suivre. Vous pouvez ignorer le fait que distutils
est un peu cassé et constitue une base de bas niveau pour setuptools
, car setuptools
doit se charger de vous cacher ces informations.
[~ # ~] edit [~ # ~] : Les derniers projets que j'utilise pbr
pour construire des packages de distribution à trois lignes setup.py
et le repos étant en setup.cfg
et requirements.txt
. Pas besoin de se soucier de MANIFEST.in
et autres trucs étranges. Même si le paquet mériterait un peu plus de documentation. Voir http://docs.openstack.org/developer/pbr/
Ancienne question, nouvelle réponse:
Non, vous n'avez pas besoin de MANIFEST.in
. Cependant, pour que setuptools
fasse ce que vous entendez (généralement), vous devez utiliser le setuptools_scm
, qui prend le rôle de MANIFEST.in
dans 2 endroits clés:
sdist
(où tous les fichiers pertinents sont définis comme "tous les fichiers sous contrôle de source").include_package_data
pour inclure les données du paquet dans le cadre de build
ou bdist_wheel
. (encore: fichiers sous contrôle de source)La compréhension historique de MANIFEST.in
est: lorsque vous n’avez pas de système de contrôle de code source, vous avez besoin d’un autre mécanisme pour distinguer les "fichiers source" des "fichiers qui se trouvent dans votre répertoire de travail". Cependant, votre projet est sous contrôle de code source (droit ??), vous n'avez donc pas besoin de MANIFEST.in
. Plus d'infos dans cet article .