如何使用Pipenv指定多个系统平台



我正试图使用Pipenv来指定一个仅在Linux或Mac上安装的特定软件包。根据pep496,我应该能够在需求文件中做这样的事情。

unicon; sys_platform == 'linux' or sys_platform  == 'darwin'

这就是等效的Pipfile部分的样子。

[packages]
requests = "*"
unicon = {version = "*", sys_platform = "== 'linux' or == 'darwin'"}

这创建了一个没有错误但也没有任何标记信息的CCD_ 3。当从windows安装时,它应该跳过尝试安装unicorn,但它没有,而且没有适用于windows的独角兽版本,所以我收到了一个安装错误。

我意识到我可能会让事情变得简单,只做sys_platform = "!= 'win32'",但我想明确平台。

有什么in ['linux', 'darwin']的方法可以做到这一点吗?

使用markers而不是sys_platform,PEP 496示例中的语法可用于指定Pipfile:中的多个平台

[packages]
unicon = {version = "*", markers = "sys_platform == 'linux' or sys_platform == 'darwin'"}

我找到了一种而不是在Linux上安装pypiwin32的方法。我必须指定另一个未在requirements.txt中列出的依赖项:pywin32

此外,我还使用了os_name标记:

pypiwin32 = { version = "==223",  os_name = "=='nt'"}
pywin32 = {version = "*",   os_name = "=='nt'"}

这两个包需要Pipfile:中的markers

"markers": "os_name == 'nt'",

现在可以使用pipenv进行安装了。

相关内容

  • 没有找到相关文章

最新更新