为何我的WSL Ubuntu指向的Python版本与Windows CMD中的不同?
解惑:WSL Ubuntu与Windows的Python版本差异
嘿,这个问题其实很典型,咱们来捋清楚背后的原因:
核心本质:两个完全独立的运行环境
WSL(Windows Subsystem for Linux)可不是Windows的一个“插件”,它是在你的Windows系统里跑了一个完整的Ubuntu Linux环境,和Windows本身的系统资源、软件包是完全隔离的。这就像是你在一台电脑上同时开了两个互不干涉的系统——只不过WSL更轻量化。
为什么WSL里有Python 3.8.5?
Ubuntu 20.04(很多人启用WSL时默认安装的版本)会把Python 3作为系统必备组件自动预装,默认版本就是3.8.5。这就是你明明没手动装过,却能查到这个版本的原因,它是Ubuntu系统自带的基础工具。
为什么Windows CMD里是3.7.9?
Windows本身不会自带Python,你看到的3.7.9肯定是你之前在Windows环境下单独安装的版本——可能是你早就装了但忘了,或者是某个软件安装时附带装上的。CMD里的python --version调用的是Windows系统环境变量里指向的Python程序,和WSL里的Python完全不沾边。
如果你想统一版本,可以试试这些方案
- 给WSL换Python版本:可以用
pyenv这类版本管理工具在WSL里安装3.7.9,或者直接通过apt安装(不过不建议替换系统自带的Python,可能会影响Ubuntu的系统工具运行)。 - 更新Windows的Python:去Python官网下载你想要的版本(比如3.8.5),安装时记得勾选「Add Python to PATH」选项,之后CMD里再运行
python --version就会显示新版本了。 - 直接指定路径调用:如果不想改动现有版本,每次使用时可以直接写完整路径,比如WSL里用
/usr/bin/python3.8,Windows里用C:\Users\你的用户名\AppData\Local\Programs\Python\Python37\python.exe(具体路径根据你的安装位置调整)。
内容的提问来源于stack exchange,提问作者Yoshi




