O setuptools é sempre instalado em Python por padrão?

Nov 13 2020

setuptoolsSempre é instalado com Python?

Eu gostaria de invocar setuptoolsem tempo de execução fora de um setup.pyscript.

Em outras palavras, devo incluir setuptoolsno meu pacote de requirements.txte setup.py's install_requireslista?


fundo

Notei ao criar um novo ambiente virtual (com Python 3.7.9) que ambos pipe setuptoolssão instalados por padrão:

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

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

Isso está documentado aqui: Criando ambientes virtuais :

venv está disponível por padrão no Python 3.3 e posterior, e instala pip e setuptools em ambientes virtuais criados no Python 3.4 e posterior.

Mesmo em uma versão vanilla do Python 3.7.6 (instalado via pyenv), os pacotes instalados por padrão são ambos pipe setuptools.


Pesquisa

As ferramentas de instalação devem ser incluídas em setup_requires em Python?

Informa que setuptoolsnão deve ser incluído setup_requires, mas não fala sobre ser incluído nos requisitos do pacote para uso em tempo de execução.

Respostas

2 LiorCohen Nov 13 2020 at 05:59

TL; DR

Formalmente, não. Normalmente, sim.

o setuptools não faz parte da base de código python vanilla, portanto, não é um módulo vanilla .

Os instaladores do python.org ou homebrew mac irão instalá-lo para você, mas se alguém compilar o python sozinho ou instalá-lo em alguma distribuição do Linux, ele pode não obtê-lo e precisará instalá-lo sozinho .