Python Wheels 的条件依赖

Gre*_*ald 5 python python-2.7 python-3.x python-wheel

我有一个 Python 包,我想把它做成一个轮子。在 Python 2 上,包使用ipaddr库。在 Python 3 上,它使用内置ipaddress库。对于sdist包,我签sys.version_infosetup.py以根据 Python 版本设置要求。不幸的是,这似乎不适用于轮子。是否可以基于带有轮子的 Python 版本进行条件依赖?

Gre*_*ald 4

从 Wheel 0.24.0 开始,支持使用extra_require. 例如

setup(
    ...,
    extras_require={':python_version=="2.6"':: ['ipaddr']},
    ...
)
Run Code Online (Sandbox Code Playgroud)

这记录在Wheel 文档的“定义条件依赖关系”中,并遵循PEP 426