诗歌即使存在依存也无法找到版本

时间:2020-04-24 18:40:55

标签: python python-3.x python-poetry

在诗歌中将python版本从3.7提升到3.8时,重新安装所有依赖项会失败,并显示以下版本:

ERROR: No matching distribution found for...

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

仅删除有问题的程序包并不能解决问题,因为其他程序包的诗歌可能会失败。经过一番调查,看来诗歌在某种程度上并没有使用pip3进行安装,而是使用了pip2.7。

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

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

1 个答案:

答案 0 :(得分:1)

这里有两个相互联系的问题。 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