基于可用OS库版本的pip要求

时间:2019-01-15 03:21:51

标签: python python-3.x pip pypi pygit2

我正在开发基于pygit2的python软件包。 pygit2取决于libgit2

Ubuntu 18.04的版本为libgit2-2.6

Ubuntu 18.10的版本为libgit2-2.7

在我的requirements.txt / Pipfile中,如果我有"pygit2" = "==0.26.4",它可以在18.04中工作(执行apt-get install libgit2-dev之后),而在18.10中则不能。同样,取决于"*""==0.27"在18.10上有效,但在18.04上无效。我还没有尝试过其他发行版。我可以指定一种方式吗,

if os has libgit2-2.6
    pygit2 == 0.26.4
else if os has libgit2-2.7
    pygit2 == 0.27.x

我尝试了pygit2>=0.26.4,但在18.04上不起作用。

1 个答案:

答案 0 :(得分:0)

您可以使用platform模块来指定特定于版本的模块。

>>> platform.platform().split('-')[6]
'18.04'
>>>

>>> import platform
>>> if "18.04" in platform.platform():
...   print("install 18.04 modules")
... elif "18.10" in platform.platform():
...   print("Install 18.10 modules")
...
install 18.04 modules
>>>

希望有帮助。