“pip install”忽略提供的版本并尝试安装最新版本

问题描述

正如您在下面的代码示例中看到的,我想安装 watchdog==1.0.1,但 pip 总是尝试安装最新版本(请参阅 watchdog version history)。

PS C:\Users\username\Projects> pip install watchdog==1.0.1 --no-cache-dir
Collecting watchdog
  Downloading watchdog-2.1.3-py3-none-win_amd64.whl (75 kB)
     |████████████████████████████████| 75 kB 655 kB/s
ERROR: Could not find a version that satisfies the requirement 1.0.1 (from versions: none)
ERROR: No matching distribution found for 1.0.1

以前,我遇到的问题是我总是使用缓存版本的看门狗。分辨率是 pip cache purge,它会清理整个 pip 缓存。此外,在 install-command 之后添加 --no-cache-dir 也应该可以解决问题。 尽管如此,pip install 似乎一直忽略用户提供的版本并尝试安装最新版本。

解决方法

解决方法是:

转到release files of watchdog on pypi.org,下载并运行

pip install .\watchdog-1.0.1-py3-none-win_amd64.whl

此手动安装有效。之前,您应该通过 pip uninstall watchdog 卸载看门狗,以防万一。

如果对于pip忽略指定版本的初始问题有更好的解决方案,请告诉我。


编辑问题的可能原因:

This answer(在我的 OP 的第一条评论中归功于 @Yoav Ben Haim)表明

PyPI URL 链接有时不起作用并抛出 404 响应,因此 由于以下原因,后备 URL 链接无限重定向 sourceforge.net 最近的升级和 PyPI 的陈旧 URL