python - 'pip install' 忽略提供的版本并尝试安装最新版本
问题描述
正如您在下面的代码示例中看到的,我想安装watchdog==1.0.1
但 pip 总是尝试安装最新版本(请参阅看门狗版本历史)。
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 缓存。此外,--no-cache-dir
在 install-command 之后添加也可以解决问题。尽管如此,pip install
似乎始终忽略用户提供的版本并尝试安装最新版本。
解决方案
一种解决方法是:
去pypi.org上看门狗的发布文件,下载并运行
pip install .\watchdog-1.0.1-py3-none-win_amd64.whl
此手动安装有效。之前,您应该卸载看门狗,以防万一,通过pip uninstall watchdog
.
如果有更好的解决pip忽略指定版本的初始问题,请告诉我。
编辑问题的可能原因:
这个答案(在我的 OP 的第一条评论中归功于@Yoav Ben Haim)表明
PyPI URL 链接有时不起作用并抛出 404 响应,因此由于 sourceforge.net 的最近升级和 PyPI 的陈旧 URL,后备 URL 链接无限重定向
推荐阅读
- c - 如何检查 GTK3 (C) 中的按键?
- c# - (C#) LINQ — 使用方法 .Contains() 找不到任何结果
- angular - 根据用户偏好禁用表单字段
- python - 通过检查标题将字典转换为 CSV
- xamarin - 通过听筒播放时音量按钮无效
- r - 循环数据集,使用 ifelse 检查列的值以设置新列(因子)
- firebase - 如果我正在检查数组,我可以在 firebase 规则中使用包含吗?
- c# - 带有 stringfromat 的 DataGridTextcolumn 前景数据触发器
- ethereum - 私有以太坊:将迁移保存到私有以太坊网络上的链时出现错误(交易未在 750 秒内挖掘)
- windows - 如何从 Windows 批处理脚本中的文件路径获取父目录名称?