在setup.py中为不同版本的python指定不同版本的lz4软件包

时间:2019-12-29 15:32:44

标签: python setuptools setup.py

我正在管理一个必须在python 27-3和36-1中都可用的开源库。 lz4最近发布了3.0.2版,并且仅受python> = 3.5支持。目前,我没有在setup.py中列出对lz4的依赖关系,因此它必须是我的一个依赖关系的子依赖关系。

执行此操作的唯一方法是强制用户(尝试获取27-3版本,应该不多)尝试安装我的egg,一旦无法编译lz4,他们就可以运行{{1 }},然后尝试重新安装我的游戏包?

我知道在Requirements.txt中可以找到这样的东西:

pip install lz4==3.0.0

但是我尝试将所有设置说明都本地化到我的lz4<=3.0.0; python_version < '3.0' lz4; python_version > '3.0' 文件中。

1 个答案:

答案 0 :(得分:1)

可以在setup.py中声明依赖关系,而不仅仅是在requirements.txt中声明。在setup.py中使用install_requires

setup(
    …
    install_requires = [
        "lz4<=3.0.0; python_version < '3.0'",
        "lz4; python_version > '3.0'",
    ]
    …
)

一些实际示例:SQLObjectsqlconvert