我试图使用Pipenv来指定一个特定的包,以便只在Linux或Mac上安装。根据pep496,我应该能够在需求文件中执行类似的操作。
unicon; sys_platform == 'linux' or sys_platform == 'darwin'这就是等效的Pipfile部分的样子。
[packages]
requests = "*"
unicon = {version = "*", sys_platform = "== 'linux' or == 'darwin'"}这将创建一个没有错误但也没有任何标记信息的Pipfile.lock。当从windows安装时,应该跳过尝试安装unicorn,但是它没有,并且没有用于windows的独角兽版本,所以我得到了一个安装错误。
我意识到我可能会让事情变得简单,只需做sys_platform = "!= 'win32'",但我想要对平台进行明确的说明。
有什么in ['linux', 'darwin']的方法可以做到这一点吗?
发布于 2021-07-14 11:14:20
使用markers而不是sys_platform,可以使用PEP 496示例中的语法在Pipfile中指定多个平台。
[packages]
unicon = {version = "*", markers = "sys_platform == 'linux' or sys_platform == 'darwin'"}发布于 2020-01-10 14:44:47
我找到了一种在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的安装现在可以工作了。
https://stackoverflow.com/questions/53710974
复制相似问题