当 `pip install -r requirements.txt` 时 requirements.txt 的扩展包规范的某些安装出现问题

Issue with certain installs for extended package specification for requirements.txt when `pip install -r requirements.txt`

在我的 requirements.txt 文件中,我有这个

torch==1.4.0+cpu torchvision==0.5.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

然而,当我尝试做

pip install -r requirements.txt

我明白了

Invalid requirement: 'torch==1.4.0+cpu torchvision==0.5.0+cpu'
Traceback (most recent call last):
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\_vendor\packaging\requirements.py", line 92, in __init__
    req = REQUIREMENT.parseString(requirement_string)
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\_vendor\pyparsing.py", line 1617, in parseString
    raise exc
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\_vendor\pyparsing.py", line 1607, in parseString
    loc, tokens = self._parse( instring, 0 )
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\_vendor\pyparsing.py", line 1379, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\_vendor\pyparsing.py", line 3376, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\_vendor\pyparsing.py", line 1383, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\_vendor\pyparsing.py", line 3164, in parseImpl
    raise ParseException(instring, loc, self.errmsg, self)
pip._vendor.pyparsing.ParseException: Expected stringEnd (at char 17), (line:1, col:18)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\req\req_install.py", line 82, in __init__
    req = Requirement(req)
  File "c:\users\santosh\documents\github\zakta\zaktaenv2\lib\site-packages\pip\_vendor\packaging\requirements.py", line 96, in __init__
    requirement_string[e.loc:e.loc + 8]))
pip._vendor.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'torchvis'"

所以我认为它与扩展的 pip 命令有关,所以我想我需要以某种方式在我的 requirements.txt 文件中以不同的方式格式化它,可能使用引号、$ 或 {}。

已编辑:
正如@georgexsh 和@Klaus D. 评论的那样,requirements.txt 不是 pip 的命令行,因此您需要摆脱这些命令并在不同的行中有两个包。

这是 requirements file format 上的文档 link。

您可以在 requirements.txt 文件中简单地包含这两行:

torch==1.4.0
torchvision==0.5.0

然后 运行

pip install -r requirements.txt