有一种声明性的方式,但是它需要一个或多或少的最新版本的setuptools(如果我正确读取
release notes,你至少需要20.2版本).您将在下面看到的内容称为环境标记,并在
PEP 508中指定,阅读它以获取可用标记的完整列表,并在需要时更好地理解标记语法.
对于python版本,让我们以您的包为例:您应该在python2.X环境中安装subprocess32依赖项.像这样增强你的依赖:
install_requires=[
'subprocess32; python_version
]
现在使用python2.7安装软件包subx会产生:
Processing ./dist/subx-2017.8.0-py2-none-any.whl
Collecting subprocess32; python_version < "3" (from subx==2017.8.0)
Installing collected packages: subprocess32, subx
Successfully installed subprocess32-3.2.7 subx-2017.8.0
如果你用python3.X安装它,输出将是:
Processing ./dist/subx-2017.8.0-py3-none-any.whl
Installing collected packages: subx
Successfully installed subx-2017.8.0
请注意,将跳过subprocess32的安装.
另一个常见的例子是声明特定于平台的依赖项:我有一个项目需要在Linux上安装auditwheel并在MacOS上进行分配.我声明这样的依赖:<