我正在管理一个必须在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'
文件中。
答案 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'",
]
…
)
一些实际示例:SQLObject,sqlconvert。