6

当我在诗歌中将我的 python 版本从 3.7 升级到 3.8 时,重新安装所有依赖项失败,并出现以下版本:

ERROR: No matching distribution found for...

该版本的发行版可在 pypa 获得,并且通常是最新版本。

简单地删除有问题的包并不能解决问题,因为诗歌可能会与其他包一起失败。经过一番调查,似乎以某种方式诗歌没有使用 pip3 安装在下面,而是使用 pip2.7。

实际上,这是由弃用警报支持的,如果我尝试使用 pip(全局或其他方式)而不是 pip3 安装相同的版本,该错误总是可重现的。

这个问题令人沮丧,单独删除 venv 似乎无济于事。我该如何解决这个原本不应该存在的依赖问题?

4

1 回答 1

7

这里有两个相互影响的问题。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 | tail -1 | sed 's/.\{12\}$//')/bin/activate"
  1. 在虚拟环境中安装诗歌(这确保诗歌使用正确版本的 pip)
poetry install
于 2020-04-24T18:40:55.767 回答