默认情况下,setuptools是否始终安装在Python中?

问题描述

setuptools是否始终与Python一起安装?

我想在setuptools脚本之外的运行时调用setup.py

换句话说,我应该在包的setuptoolsrequirements.txt的{​​{1}}列表中包含setup.py吗?


背景

在使用Python 3.7.9创建新的虚拟环境时,我注意到install_requirespip认安装:

setuptools

在此处记录:Creating Virtual Environments

venv在Python 3.3和更高版本中认可用,并在Python 3.4和更高版本中将pip和setuptools安装到创建的虚拟环境中。

即使在Python 3.7.6的原始版本(通过pyenv安装)中,认安装的软件包也是python -m venv venv source ./venv/bin/activate pip list Package Version ---------- ------- pip 20.1.1 setuptools 47.1.0 pip


研究

Should setuptools be included in setup_requires in Python?

通知setuptools不应包含在setuptools中,但并未提及将其包含在运行时使用的软件包要求中。

解决方法

TL; DR

正式,不是。通常是。

setuptools不是python vanilla代码库的一部分,因此也不是vanilla modules

python.org安装程序或mac homebrew将为您安装它,但是如果有人自己编译python或将其安装在某些linux发行版上,他可能无法获取它,因此需要install it by himself