setuptools est-il toujours installé avec Python ?

Je voudrais appeler setuptools au moment de l'exécution en dehors d'un script setup.py.

En d'autres termes, dois-je inclure setuptools dans la liste requirements.txt de mon package et la liste install_requires de setup.py ?


Contexte

J'ai remarqué lors de la création d'un nouvel environnement virtuel (avec Python 3.7.9) que pip et setuptools sont installés par défaut :

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

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

Ceci est documenté ici : Création d'environnements virtuels :

venv est disponible par défaut dans Python 3.3 et versions ultérieures, et installe pip et setuptools dans les environnements virtuels créés dans Python 3.4 et versions ultérieures.

Même dans une version vanille de Python 3.7.6 (installée via pyenv), les packages installés par défaut sont pip et setuptools.


Recherche

Les setuptools doivent-ils être inclus dans setup_requires en Python?

Informe que setuptools ne doit pas être inclus dans setup_requires, mais ne parle pas de son inclusion dans les exigences du package pour une utilisation à l'exécution.

2
Intrastellar Explorer 12 nov. 2020 à 23:34

1 réponse

Meilleure réponse

TL; DR

Formellement, non. Habituellement, oui.

Le setuptools ne fait pas partie de la base de code python vanilla, donc pas un modules vanille .

Les installateurs python.org ou mac homebrew l'installeront pour vous, mais si quelqu'un compile le python lui-même ou l'installe sur une distribution Linux, il peut ne pas l'obtenir et devra l'installer par lui-même.

2
Lior Cohen 12 nov. 2020 à 22:59