WSL2中Python需通过发行版包管理器安装,但默认无python命令;应先配置源、安装python3及pip,再用update-alternatives建立软链接,最后升级pip并验证环境。

WSL2 里装 Python 不需要额外下载安装包,直接用发行版自带的包管理器就能搞定,但默认版本往往太旧,python 命令可能根本不存在——这是新手最常卡住的地方。
确认 WSL2 发行版和系统源是否可用
WSL2 本身不提供 Python,它依赖你安装的 Linux 发行版(比如 Ubuntu、Debian、Alpine)。先检查当前环境:
lsb_release -a
如果提示 command not found,说明没装 lsb-release 包,先运行:
sudo apt update && sudo apt install -y lsb-release
常见坑:
立即学习“Python免费学习笔记(深入)”;
- 刚初始化的 WSL2 实例可能没配置软件源,
apt update报错Failed to fetch;这时要手动换国内源(如清华、阿里云),改/etc/apt/sources.list - Alpine 用户得用
apk add python3,不是apt,别混用命令 - 某些最小化镜像(如 Ubuntu Server minimal)默认不装
python3,更不会建python软链接
安装 Python3 并设置 python 命令指向
Ubuntu/Debian 默认只装 python3,不带 python 命令。多数脚本和工具(比如 pip、venv)仍习惯调用 python,不配会报错 Command 'python' not found。
推荐做法(安全且兼容):
- 运行
sudo apt install -y python3 python3-pip python3-venv - 用
update-alternatives注册并切换:sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
- 验证:
python --version应输出类似Python 3.10.12
注意:别用 ln -sf 硬链,后续系统升级可能覆盖或冲突;update-alternatives 是 Debian/Ubuntu 官方推荐机制。
升级 pip 和验证基础环境
WSL2 自带的 pip 版本通常很老(比如 22.x),遇到新包(如 torch、numpy)容易报 ERROR: Could not find a version that satisfies...。
必须升级:
python -m pip install --upgrade pip
再验证关键能力:
-
python -m venv myenv && source myenv/bin/activate—— 检查虚拟环境是否可用 -
python -c "import sys; print(sys.version)"—— 确认解释器路径和版本 -
which python和which pip—— 确保两者指向同一环境(避免 pip 装到系统 Python 2 或别的位置)
要不要装 pyenv?
如果你需要多个 Python 版本(比如同时开发 Python 3.9 和 3.12 项目),pyenv 是唯一靠谱选择。但对绝大多数单版本需求,它纯属冗余——WSL2 本身是轻量层,加 pyenv 反而增加 shell 初始化延迟、环境变量污染风险。
真要用,只推荐这三步:
curl https://pyenv.run | bash- 把三行 export 追加到
~/.bashrc(注意:不是~/.profile或~/.zshrc,除非你换了 shell) - 重启终端或
source ~/.bashrc,再pyenv install 3.12.4 && pyenv global 3.12.4
最容易被忽略的是:pyenv 安装后,python 命令的行为完全由 pyenv 控制,此时 update-alternatives 就失效了,两个机制不能共存。


















