簡體   English   中英

詩歌找不到依賴的版本,即使它存在

[英]poetry can't find version of dependency even though it exists

在 poetry 中將我的 python 版本從 3.7 升級到 3.8 時,重新安裝所有依賴項失敗並出現以下版本:

ERROR: No matching distribution found for...

該版本的發行版可在 pypa 獲得,並且通常是最新版本。

簡單地刪除有問題的 package 並不能解決問題,因為 poetry 可能會與其他包一起失敗。 經過一些調查,似乎 poetry 並沒有使用 pip3 在下面安裝,而是使用 pip2.7。

實際上,棄用警報支持這一點,如果我嘗試使用 pip(全局或其他方式)而不是 pip3 安裝相同版本,則該錯誤始終可重現。

這個問題令人沮喪,單獨刪除 venv 似乎無濟於事。 我該如何解決這個本來就不應該存在的依賴問題呢?

這里有兩個相互影響的問題。 1.當您修改 python 版本時,詩歌似乎一直在破壞 venv 的升級。 根據 finswimmer 的說法,升級應該為新的 python 版本創建一個新的虛擬環境,但是當詩歌使用錯誤的pip版本或忘記它正在使用的虛擬環境時,這個過程可能會失敗。 2. 詩歌使用pip沒有任何問題 - 無法覆蓋和強制使用 pip3。

這是我用來解決此問題的提煉步驟

  1. 刪除虛擬環境(有時詩歌會丟失 venv/認為它已經被激活。最好清除石板)
rm -rf `poetry env list --full-path`
  1. 創建一個新的虛擬環境(命令應該失敗,但將創建 venv)
poetry install
  1. 手動激活虛擬環境
source "$( poetry env list --full-path )/bin/activate"
  1. 在虛擬環境中安裝詩歌(這確保詩歌使用正確版本的 pip)
poetry install

有時, import <NAME>pip install <NAME> / poetry add <NAME>不同。

例子:

import icd10

安裝/詩歌:

pip install icd10-cm
poetry add icd10-cm

導入名稱與安裝名稱相同是慣例——但情況並非總是如此。

這是因為install名稱必須是唯一的,但導入名稱實際上不必是唯一的,因為我們可以添加別名:

import icd10 as foo

來源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM