pipenv: packaging.specifiers.InvalidSpecifier: 无效的说明符



我在重新创建Pipfile.lock时收到此错误:

packaging.specifiers.InvalidSpecifier: Invalid specifier '==0.5.2-auto'

我认为它与-auto后缀有关,但由于某种原因,它可以在不同的计算机上工作。

由于某种原因,回溯似乎被截断了,这是我在控制台中看到的全部内容:

pipenv/vendor/requirementslib/models/requirements.py", line 1008, in get_version
return parse_version(self.get_specifier().version)
File "/home/johneye/.local/share/virtualenvs/python-microservice-scaffolding-ylP1urgf/lib/python3.6/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 1005, in get_specifier
return Specifier(self.specifiers)
File "/home/johneye/.local/share/virtualenvs/python-microservice-scaffolding-ylP1urgf/lib/python3.6/site-packages/pipenv/vendor/packaging/specifiers.py", line 85, in __init__
raise InvalidSpecifier("Invalid specifier: '{0}'".format(spec))
packaging.specifiers.InvalidSpecifier: Invalid specifier '==0.5.2-auto'

我发布了部分答案,因为在查找确切的错误消息时,我在 Google 上只得到了三个结果。

通过查看代码并对其进行修改,很明显至少有两种说明符 - 一种可以包含几乎任何内容的遗留说明符和符合 PEP 440 的标准说明符。

锁定依赖项时,将根据正则表达式检查说明符,以查看它们是否有效。我看到有时根据旧说明符检查它们,有时与正常说明符进行检查。在这一点上,我放弃了对根本原因的搜索,并决定最好修复我的代码以符合两个说明符,所以我将其更改为==0.5.2-dev1,从而解决了问题。

相关内容

  • 没有找到相关文章

最新更新