簡體   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