WSL中pip安装requirements.txt依赖提示找不到匹配版本如何解决
问题根因
不是pip软件源的问题,核心原因是你当前使用的Python 3.6版本不满足Django 4.0.4的最低运行要求。Django 4.0及以上版本要求Python版本最低为3.8,pip在检索安装包时会自动过滤掉和当前Python版本不兼容的版本,所以你能搜到的最高适配版本只有Django 1.11.29——这是最后一个兼容Python 3.6的1.x版本,和你用什么软件源没有关系,换源也解决不了版本兼容问题。
解决步骤
推荐升级Python版本到3.8及以上,WSL Ubuntu环境下操作如下,注意不要直接覆盖系统自带的Python3,避免破坏系统依赖:
- 先更新apt本地包索引
sudo apt update
- 安装添加软件源需要的依赖
sudo apt install software-properties-common -y
- 添加多版本Python的软件源
sudo add-apt-repository ppa:deadsnakes/ppa -y
- 再次更新apt索引拉取新源的包列表
sudo apt update
- 安装兼容的Python版本(推荐3.9,第三方库适配范围最广),同时安装对应版本的venv和pip组件
sudo apt install python3.9 python3.9-venv python3.9-pip -y
- 删除你之前基于Python3.6创建的旧虚拟环境,用新安装的Python3.9重新创建虚拟环境
python3.9 -m venv 你的虚拟环境目录路径
- 激活新的虚拟环境,先确认Python版本符合要求,再升级pip到最新版本
# 激活虚拟环境的命令根据你用的shell调整,bash/zsh下用: source 你的虚拟环境目录路径/bin/activate # 验证版本,输出应为3.9.x python --version pip install --upgrade pip
- 重新执行依赖安装命令即可正常安装所有要求的包
pip install -r requirements.txt
临时替代方案
如果你暂时无法升级Python版本,可以把requirements.txt里的Django版本降级到兼容Python3.6的最高LTS版本Django==3.2.25,但注意这个版本也已经结束官方维护,存在安全风险,仅适合临时调试使用。
内容的提问来源于stack exchange,提问作者Tanne
相关产品推荐
相关产品推荐

