【问题标题】:Is setuptools always installed in Python by default?默认情况下,setuptools 是否始终安装在 Python 中?
【发布时间】:2021-02-24 21:31:33
【问题描述】:

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

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

换句话说,我应该在我的包的requirements.txtsetup.pyinstall_requires 列表中包含setuptools 吗?


背景

我注意到在创建新的虚拟环境(使用 Python 3.7.9)时,pipsetuptools 都默认安装:

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

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

这在此处记录:Creating Virtual Environments:

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

即使在 Python 3.7.6 的 vanilla 版本(通过 pyenv 安装)中,默认安装的包也是 pipsetuptools


研究

Should setuptools be included in setup_requires in Python?

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

【问题讨论】:

    标签: python pip setuptools setup.py


    【解决方案1】:

    TL;DR

    正式,不。通常,是。

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

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

    【讨论】:

    • 所以@LiorCohen 你认为我应该在requirements.txtsetup.pyinstall_requires 中包含setuptools 吗?
    • 对于 requirements.txt 是。因为这是一个依赖。 setup.py 没有,因为如果您能够运行它,则意味着您已经拥有 setuptools。
    • 能够运行setup.py 并不意味着您已经拥有setuptools。可以(尽管不推荐)使用distutils 而不是setuptools
    • 正确,我假设 setup.py 从 setuptools 导入 setup 函数
    猜你喜欢
    • 2019-04-21
    • 2020-01-31
    • 2011-06-16
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2011-02-12
    相关资源
    最近更新 更多