问题
自从我从Python 3.8迁移到Python 3.10以来,在我的CI/CD管道(Github Actions(中,在任何Github运行程序上使用poetry install
都遇到了问题。
Installing dependencies from lock file
Package operations: 79 installs, 0 updates, 0 removals
• Installing pyparsing (3.0.9)
JSONDecodeError
Expecting value: line 1 column 1 (char 0)
at /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/json/decoder.py:355 in raw_decode
351│ """
352│ try:
353│ obj, end = self.scan_once(s, idx)
354│ except StopIteration as err:
→ 355│ raise JSONDecodeError("Expecting value", s, err.value) from None
356│ return obj, end
357│
Error: Process completed with exit code 1.
我在pyproject.toml
文件中没有更改任何库配置,但正如您在上面看到的:Poetry隐藏了大部分StackTrace
我尝试了什么
- 正在重新创建
poetry.lock
文件 - 使用
rm -r ~/.cache/pypoetry/cache/
(和rm -r ~/.cache/pypoetry/
(删除诗歌缓存 - 删除返回错误的lib(实际上,这个问题似乎发生在任何lib中,所以这就是为什么我理解它可能与诗歌和python有关(
问题
知道如何解决我的CI/CD管道中的此问题吗
经过几项研究,我从2021年11月开始在诗歌GitHub存储库中发现了这个线程。
有一个来自hoefling GitHub用户的解决方法:
禁用poetry的实验性新安装程序可能是现在:
解决方案
poetry config experimental.new-installer false
在运行poetry install
命令之前在shell中添加这一行解决了我的问题
使用新版本的cachecontrol==0.12.9解决了此问题(应自动安装(。
但在我的特定情况下,运行pip install -U cachecontrol
并没有解决问题(否则是否值得测试?(。
问题似乎最近(2022年7月(又出现了,这条评论表明了与setuptools库相关的问题的可能根本原因
无论如何,禁用poetry的实验性新安装程序应该可以暂时解决这个问题,直到找到永久的解决方案。