代码之家  ›  专栏  ›  技术社区  ›  wvxvw

如何在setup.py中指定括号依赖项?

  •  -2
  • wvxvw  · 技术社区  · 6 年前

    关于这个问题: What do square brackets mean in pip install?

    我有一个 setup.py 需要安装的文件 azure[common] 包裹。但是,如果我尝试:

    setup(
        ...
        install_requires=['azure[common]'],
        ...
    )
    

    这将导致错误:

    pkg_resources.UnknownExtra: azure 4.0.0 has no such extra feature 'common'
    

    但是,如果我这样做了:

    pip install 'azure[common]', then it works.
    

    上面的实验涉及到很多错误和意想不到的行为,所以这个问题已经没有意义了。

    1. 里面有个虫子 pip 如果找不到“额外”软件包,就会随机安装一些东西。所以, pip install 'azure[common]' 根本不应该有用的。是个错误让我相信有这样一个包裹。
    2. 在如何 setuptools 匹普 从轮子安装软件包。 设置工具 安装(或似乎)只从一个控制盘安装一个包,而 匹普 将安装所有程序包,如果有多个程序包,则将安装多个程序包。所以, 匹普 正在安装 azure.common 错了,但是没有办法故意只安装那个包。至少,你也会得到 azure.profiles 加上一个假包裹 azure_common ,实际上不包含任何内容。

    鉴于所有这些新信息,我在这里重新提出了这个问题: How to make setuptools install a wheel containing multiple packages?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Artemiy Rodionov    6 年前

    azure不提供 common 额外的依赖。 pip install azure[common] 显示有关它的警告。