通过 setup.py 但不是通过 pip 安装时出现 UnknownExtra 错误

问题描述

我使用 ray[rllib] 作为我的 Python 包的依赖项。 通过 pip install ray[rllib] 安装它工作得很好。 但是将 ray[rllib] 列为我的 setup.py 中的依赖项,如下所示:

requirements = [
    'ray[rllib]==1.1.0',# ...
}

运行 python setup.py develop 时导致错误pkg_resources.UnkNownExtra: ray 1.1.0 has no such extra feature 'rllib'

我发现了一些相关的问题,例如 this,但它们不适用/解决我的问题。 ray 确实在 its setup.py 中定义了额外的 rllib

知道如何解决这个问题吗?我很高兴为 ray 贡献补丁/PR。

目前,我唯一的解决方法是首先通过 ray[rllib] 手动安装 pip,然后使用 python setup.py install 手动安装我的软件包的其余依赖项。但这并不好。

解决方法

现在的一般建议(来自setuptools 维护者自己)是停止使用:

  • python setup.py install
  • python setup.py develop

而是使用以下内容:

  • python -m pip install .
  • python -m pip install --editable .

但说实话,我有点惊讶这里的事情失败了。我不知道 setuptools 到底出了什么问题,以及为什么 python setup.py develop 在这里失败。