繁体   English   中英

JSONDecodeError 诗歌 (Python 3.10)

[英]JSONDecodeError Poetry (Python 3.10)

问题

由于我从 Python 3.8 迁移到 Python 3.10,我在任何 GitHub 运行器上的 CI/CD 管道(Github Actions)中使用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文件中的任何 lib 配置,但正如您在上面看到的: Poetry hide the most of the StackTrace.

我试过的

  • poetry.lock文件。
  • 使用rm -r ~/.cache/pypoetry/cache/ (和rm -r ~/.cache/pypoetry/ )删除诗歌缓存。
  • 删除返回错误的库(实际上,这个问题似乎发生在任何库中,所以这就是我理解它可能与诗歌和python有关的原因)

问题

知道如何在我的 CI/CD 管道中解决这个问题吗?

经过一些研究,我在 2021 年 11 月的诗歌 GitHub 存储库中找到了这个线程

在这里,从hoefling GitHub 用户那里得到了这个解决方法:

目前禁用诗歌的实验性新安装程序可能是一种解决方法:

解决方案

poetry config experimental.new-installer false

在运行poetry install命令之前在 shell 中添加这一行解决了我的问题!



请注意,在同一线程中,来自ddc67cd的另一条评论指出:

新版本的cachecontrol==0.12.9解决了这个问题(应该自动安装)。

但是在我的特定情况下运行pip install -U cachecontrol并没有解决问题(否则可能值得测试?)。



问题似乎最近(2022 年 7 月)又回来了,并且此评论暗示了与 setuptools 库相关的问题的可能根本原因。

无论如何,禁用诗歌的实验性新安装程序现在应该可以解决问题,直到找到永久解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM