有关此问题: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.
上面的实验涉及很多错误和意外行为,因此该问题不再具有实际意义。
pip
中存在一个错误,如果找不到“额外”软件包,该错误会导致随机安装东西。因此,pip install 'azure[common]'
根本不起作用。这是一个错误,使我相信有这样的程序包。setuptools
和pip
如何从轮子安装软件包之间存在不一致的地方。 setuptools
安装(或似乎只)从轮子安装一个软件包,而pip
将安装所有软件包,如果有多个软件包,则将安装更多软件包。因此,pip
误安装了azure.common
,但是没有办法故意安装该软件包。至少,您还将获得azure.profiles
以及假包azure_common
,该包实际上并不包含任何内容。鉴于所有这些新信息,我在这里重新提出了问题:How to make setuptools install a wheel containing multiple packages?
答案 0 :(得分:2)
Azure不提供common
的额外依赖项。 pip install azure[common]
显示有关此警告。