问题描述
setuptools
是否始终与Python一起安装?
我想在setuptools
脚本之外的运行时调用setup.py
。
换句话说,我应该在包的setuptools
和requirements.txt
的{{1}}列表中包含setup.py
吗?
背景
在使用Python 3.7.9创建新的虚拟环境时,我注意到install_requires
和pip
均默认安装:
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。