Was ist die vollständige Liste der Schlüsselwortargumente, die die Funktion setuptools.setup () akzeptiert? (Bitte geben Sie nach Möglichkeit eine Beschreibung der Bedeutung der einzelnen Argumente an.)
Ich habe im ganzen Web nachgesehen und kann nicht glauben, dass dies nicht dokumentiert ist.
Ich habe diese Dokumente gefunden:
- https://docs.python.org/3.7/distutils/setupscript.html#additional-meta-data
- https://setuptools.readthedocs.io/en/latest/setuptools.html#new-and-changed-setup-keywords
Aber selbst wenn ich diese kombiniere, fehlen ihnen andere Argumente wie
- Skripte
- Pakete
- bietet
- veraltet
... und ich weiß nicht, wie viele weitere Argumente fehlen.
Was ist die vollständige Liste der Schlüsselwortargumente, die die Funktion setuptools.setup () akzeptiert?
python
pip
setuptools
distutils
easy-install
Cowlinator
quelle
quelle
provides
undrequires
(und natürlich nichts, was von setuptools hinzugefügt wurde, da es sich um die distutils-Dokumentation handelt), und ich glaube, setuptools hat nicht einmal eine API-Referenz.Antworten:
setuptools.setup()
ruft aufdistutils.core.setup()
und übergibt es**kwargs
als einzigen Parameter, sodass alle Schlüsselwörter, diedistutils
akzeptiert werden, auch von akzeptiert werdensetuptools
. Wenn wir schauendistutils
Die meisten davon sind hier dokumentiert , aber einige sind nicht in der Tabelle enthalten: packages , package_dir , package_data , scripts , obsoletes , proviodes , py_modules und data_files .
Einige davon fehlen auch im
setup_keywords
Tupel. Und wenn Sie danachsetup_keywords
suchen, sieht es nicht so aus, als würde es tatsächlich irgendwo referenziert ... Aber das ist eine Geschichte für einen anderen Tag. Wie auch immer, hier ist die (hoffentlich vollständige) Liste.distutils.core.setup () Schlüsselwortargumente
( Erforderlich : Name , Version und mindestens einer der Autoren oder Betreuer )
Autor:
author_email:
Klassifikatoren:
Datendateien :
Beschreibung:
download_url:
Schlüsselwörter:
Lizenz:
Lange Beschreibung:
Betreuer:
Betreuer_email:
Name:
veraltet :
package_data :
package_dir :
Pakete :
Plattformen:
bietet :
py_modules :
Skripte :
URL:
Ausführung:
Schlüsselwortargumente setuptools.setup ()
Es gibt noch mehr Argumente,
setuptools.setup()
die akzeptiert werden, als die, die von verwendet werdendistutils
.Obwohl es "Neue und geänderte Setup-Schlüsselwörter" heißt (was für mich ein Versionsänderungsprotokoll vorschlägt), heißt es im Intro-Text, dass dies "Schlüsselwortargumente für setup () [die von setuptools hinzugefügt oder geändert werden" sind, sodass ich glaube, dass der Link tatsächlich bereitstellt eine vollständige Liste. Ich werde es hier der Vollständigkeit halber hinzufügen.
(Seit
setuptools.setup()
Aufrufendistutils.core.setup()
sind dieselben Parameter erforderlich : Name , Version und mindestens einer der Autoren oder Betreuer. )convert_2to3_doctests:
dependency_links:
eifrige_Ressourcen:
Einstiegspunkte:
exclude_package_data:
extras_require:
include_package_data:
install_requires:
Namespace-Pakete:
package_data:
project_urls:
python_requires:
setup_requires:
test_loader:
test_suite:
tests_require:
use_2to3:
use_2to3_exclude_fixers :
use_2to3_fixers :
zip_safe:
Erweiterungen
Das Erstellen einer Erweiterung (anstelle eines reinen Python-Moduls) ist komplizierter, da Sie im Wesentlichen die erforderlichen Parameter und Argumente angeben müssen, um die Erweiterung erfolgreich aus
C
Quelldateien zu erstellen. Dies erfolgt über dasext_modules
Schlüsselwort, das nichts anderes als eine Liste vonExtension
Instanzen ist (aus denen importiert werden kanndistutils.core
). Die vomExtension
Klassenkonstruktor akzeptierten Schlüsselwortargumente sind der Eingabevektor zum Festlegen der Erstellungsschritte zum Kompilieren der Erweiterung.Da es sich bei dieser Frage
setuptools.setup()
speziell um eine Frage handelt , werde ich nur die Definition von einschließenext_modules
, aber die Dokumentation für dieExtension
Klasse enthält alle Details. Der Vollständigkeit halber ist dies die Liste der akzeptierten Schlüsselwörter für denExtension
Konstruktor:ext_modules :
Sonstiges
Schließlich gibt es noch mehr kwargs, die in
setuptools.dist
und anderswo implementiert sind, aber aus irgendeinem Grund nie zu einer der Hauptdokumentationen zu setuptools / distutils hinzugefügt wurden:Funktionen (veraltet):
long_description_content_type (Per "Erstellen einer PyPI-freundlichen README-Datei ):
provides_extras (Per PEP566, gelistet als "Bietet-Extra" ):
quelle
long_description_content_type
undruntime_library_dirs
undconvert_2to3_doctests
Argumenten?setuptools
diese Argumente enthält. Ich habe den zweiten Link, den Sie gepostet haben, anfangs als "Neue oder geänderte Instrumente in dieser Version von Setuptools" gelesen, aber bei näherer Betrachtung denke ich, dass er tatsächlich "neu oder verändert im Vergleich zu dem, was in Distutils ist" bedeutet, also denke ich, dass dies tatsächlich ein ist vollständige Liste.use_2to3_exclude_fixers
undlong_description_content_type
da sie beide Schlüsselwörter sindsetuptools.setup()
. Ich habe auch hinzugefügtfeatures
,provides_exrtras
undext_modules
. Dielibrary_dirs
Parameter sind eigentlich keine Schlüsselwörter fürsetup()
sich. Sie sind separate Schlüsselwörter für denExtension
Konstruktor, für die ich eine kurze Erklärung hinzugefügt habe, aber die vollständigen Details passen wahrscheinlich nicht in eine Antwort auf diese Frage, da es sich speziell umsetuptools.setup()
kwargs handelt.extras
aber dann wird der Aufruf vonsetup()
mitextras_require
dem in dieser Liste enthaltenen kwarg-Schlüssel übergeben .