Sind Setuptools standardmäßig immer in Python installiert?

Nov 13 2020

Wird setuptoolsimmer mit Python installiert?

Ich möchte zur setuptoolsLaufzeit außerhalb eines setup.pySkripts aufrufen .

Mit anderen Worten, sollte ich in die Liste setuptoolsmeiner Pakete requirements.txtund setup.py's aufnehmen install_requires?


Hintergrund

Ich habe beim Erstellen einer neuen virtuellen Umgebung (mit Python 3.7.9) festgestellt, dass beide pipund setuptoolsstandardmäßig installiert sind:

python -m venv venv
source ./venv/bin/activate
pip list

Package    Version
---------- -------
pip        20.1.1
setuptools 47.1.0

Dies ist hier dokumentiert: Erstellen virtueller Umgebungen :

venv ist standardmäßig in Python 3.3 und höher verfügbar und installiert pip und setuptools in erstellten virtuellen Umgebungen in Python 3.4 und höher.

Selbst in einer Vanilla-Version von Python 3.7.6 (installiert über pyenv) sind die standardmäßig installierten Pakete sowohl pipals als auch setuptools.


Forschung

Sollten setuptools in setup_requires in Python enthalten sein?

Informiert, setuptoolsdie nicht setup_requiresin den Paketanforderungen für die Laufzeitverwendung enthalten sein sollten , aber nicht darüber sprechen.

Antworten

2 LiorCohen Nov 13 2020 at 05:59

TL; DR

Formal Nein. Normalerweise ja.

Die Setuptools sind nicht Teil der Python-Vanille-Codebasis, daher keine Vanille-Module .

python.org-Installationsprogramme oder Mac Homebrew installieren es für Sie, aber wenn jemand die Python selbst kompiliert oder auf einer Linux-Distribution installiert, kann er sie möglicherweise nicht erhalten und muss sie selbst installieren .