Das Handbuch "Python Distribute" (war auf python-distribute.org, aber diese Registrierung ist abgelaufen) fordert mich auf, doc/txt
Dateien einzuschließen, und .py
Dateien werden in die MANIFEST.in
Datei ausgeschlossen
In der Sourcing-Dokumentation wird angegeben, dass nur sdist verwendet MANIFEST.in
und nur die von Ihnen angegebenen .py
Dateien und Dateien enthält. Es sagt mir auch, dass ich verwenden soll python setup.py sdist --manifest-only
, um ein zu generieren MANIFEST
, aber Python sagt mir, dass dies nicht existiert
Ich schätze, dass diese aus verschiedenen Versionen von Python stammen und das Distributionssystem völlig durcheinander ist, aber vorausgesetzt, ich verwende Python 3 und setuptools
(das neue, das Distribute enthält, aber jetzt Setuptools genannt wird, nicht die alten Setuptools, die nur für Distributionswerkzeuge veraltet waren wieder in Distribute gebracht und in Setuptools umbenannt werden .....)
und ich folge der 'Standard'-Ordnerstruktur und setup.py
-Datei,
- Benötige ich eine
MANIFEST.in
? - Was soll drin sein?
- Wann werden all diese verschiedenen Paketsysteme und -methoden zu einem einzigen einfachen Prozess zusammengefasst?
quelle
sdist
(means: source Distribution ) verwenden. Wenn Sie bedenken , dassbdist
undbdist_wheel
sind binär und nur in Ihrem Python - Pfad installiert werden soll, ist dies sinnvoll. (Wohin würden diese Nicht-Modul-Dateien und -Verzeichnisse gehen? In/usr/local/lib/python2.7/dist-packages/
? Sicher nicht.) Aber es ist erwähnenswert, da es verwirrend ist, das erstellte Archiv zu sehen und die Dateien nicht zu enthalten.package_data
und diedata_files
Empfehlungen, die außerhalb des Geltungsbereichs liegen, zu vermeiden, werde ich fortfahren.package_data
listet Dateien auf, die mit Ihrem Paket installiert werden und indist-packages/yourpackage
die übersprungen worden wären, weil sie keinen * .py-Namen haben.data_files
listet Dateien auf, die außerhalb Ihres Pakets installiert werden. Jeder Eintrag gibt einen Zielpfad an, dem ein Präfix vorangestellt wird,sys.prefix
wenn er relativ ist, oder direkt erstellt wird (sofern die Berechtigungen dies zulassen), wenn er mit a beginnt/
.pbr
ist auch eine schlechte Idee, darauf hinzuweisen.Alte Frage, neue Antwort:
Nein, das brauchst du nicht
MANIFEST.in
. Um jedoch dassetuptools
zu tun, was Sie (normalerweise) meinen, müssen Sie das verwendensetuptools_scm
, dasMANIFEST.in
an zwei Schlüsselstellen die Rolle übernimmt :sdist
Befehl ausgeführt wird (wobei alle relevanten Dateien als "alle Dateien unter Quellcodeverwaltung" definiert sind).include_package_data
, um Paketdaten als Teil desbuild
oder einzuschließenbdist_wheel
. (wieder: Dateien unter Quellcodeverwaltung)Das historische Verständnis von
MANIFEST.in
ist: Wenn Sie kein Versionsverwaltungssystem haben, benötigen Sie einen anderen Mechanismus, um zwischen "Quelldateien" und "Dateien, die sich zufällig in Ihrem Arbeitsverzeichnis befinden" zu unterscheiden. Ihr Projekt befindet sich jedoch unter Quellcodeverwaltung (richtig ??), sodass dies nicht erforderlich istMANIFEST.in
. Weitere Infos in diesem Artikel .quelle