O setuptools é sempre instalado em Python por padrão?
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
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 .