写这篇的起因,是我在技术社区里被连续问了好几次同一个问题:“我明明在 PyCharm 里选了 WSL 的 Python 环境,怎么跑起来之后装的东西全不见了?”“PyCharm 里配置的那个 python.exe 到底是 Windows 的还是 WSL 的?”“我电脑上装了好几个 Linux 子系统,PyCharm 到底连的是哪一个?”这些问题看着基础,但真不是一句两句能说清楚。因为 PyCharm 连接 WSL 这套机制,涉及 WSL 发行版的实例选择、解释器路径解析、虚拟环境和全局环境之间的优先级,以及 Windows 和 Linux 文件系统的映射关系。你只要有一个环节没弄明白,就会出现“明明配置对了,跑起来却是另一个环境”的诡异状况。
这篇文章就干一件事:把 PyCharm 里到底跑的是 WSL 下的哪个环境这件事,彻底掰开揉碎讲明白。我会结合自己排查过的真实案例,从 PyCharm 的 WSL 集成机制讲起,然后给你一套能直接上手验证的命令,再把常见的高频翻车现场列一遍,最后给出一套从零配置、不迷路的完整流程。无论你是刚开始用 PyCharm 配 WSL 的小白,还是被多环境搞到头大的老手,这篇文章都能帮你少走很多弯路。
1. 为什么 PyCharm 连上 WSL 之后,环境路径总是让人一头雾水
1.1 PyCharm 的 WSL 集成机制到底是怎样工作的
很多人第一次在 PyCharm 里配置 WSL 解释器时,都会在设置界面看到类似/home/username/miniconda3/bin/python或者/usr/bin/python3这样的路径,然后下意识以为这是“Linux 里的路径”。这个理解是对的,但它只讲对了一半。
PyCharm 连接 WSL 的完整链条其实是这样:PyCharm 本身运行在 Windows 上,它是一个 Windows 进程。当你在 PyCharm 里选择了一个 WSL 解释器时,PyCharm 会通过 WSL 的互操作机制去调用 Linux 子系统里的 Python 可执行文件。换句话说,你在 PyCharm 里点击“运行”按钮,实际上是 PyCharm 在 Windows 侧发出一条命令,这条命令被 WSL 接收,然后在 Linux 环境里启动 Python 解释器执行你的代码。Windows 侧的 PyCharm 只是一个“遥控器”,真正干活的是 WSL 里的那个环境。
这里就引出了第一个容易混淆的点:PyCharm 显示给你的解释器路径,到底是 Windows 路径还是 Linux 路径?答案是:WSL 类型的解释器,PyCharm 一般会显示一个特殊的路径,比如\\wsl$\Ubuntu-22.04\home\username\venv\bin\python。这个\\wsl$是 Windows 访问 WSL 文件系统的网络路径格式,它本质上是一个映射,指向的是 Linux 里的真实文件。所以虽然它长得像 Windows 的 UNC 路径,但里面的内容完全是 Linux 文件系统。理解这一点,你就知道为什么不能简单地在 Windows 文件管理器里把 Python 复制出来用了。
1.2 WSL 1 和 WSL 2 的差异:别让底层机制干扰你的判断
WSL 本身还有 1 和 2 两个大版本,这也会影响 PyCharm 的表现。
WSL 1 是一个翻译层,它把 Linux 系统调用翻译成 Windows 系统调用,所以它的文件系统直接挂在 Windows 文件系统的某个目录下,性能接近原生 Windows,但兼容性不如纯 Linux。WSL 2 则是一个轻量级虚拟机,它运行在 Hyper-V 的虚拟化平台上,拥有完整的 Linux 内核,文件系统存在于一个虚拟磁盘文件(VHDX)里,兼容性更好,Linux 下的很多工具跑起来也更正常。
在 PyCharm 里,这两种 WSL 连起来之后的表现是不太一样的。WSL 2 因为文件系统隔离,PyCharm 通过\\wsl$访问文件时速度会慢一些,尤其是你的项目文件放在 Linux 侧、又比较大时,频繁的索引和代码分析会让人感觉卡顿。WSL 1 因为文件系统直通,访问速度更快,但某些依赖 Linux 内核特性的库(比如某些需要inotify或者特殊网络栈的包)可能跑不正常。
所以当你发现“PyCharm 连上 WSL 后跑起来卡成幻灯片”的时候,先别急着怪 PyCharm,先看看你的 WSL 版本是不是被设成了 2,以及项目文件是放在 Windows 侧还是 Linux 侧。这个问题我后面会详细展开。
1.3 你电脑里可能不止一套 WSL 环境
这是导致“PyCharm 到底用的哪个环境”困惑的最常见根源。
WSL 支持安装多个发行版,比如 Ubuntu 20.04、Ubuntu 22.04、Debian、Alpine 等。你可以在 Windows 的终端里执行wsl -l -v查看当前机器上有哪些发行版,以及它们各自的状态和版本。默认情况下,执行wsl命令进入的是“默认发行版”,这个默认发行版由wsl --set-default控制。
问题来了:PyCharm 在检测 WSL 环境时,并不总是会自动列出所有发行版。它可能只显示了默认发行版里的 Python 路径,或者在你手动指定时,你误选了另一个发行版的路径。我就见过有人电脑上装了 Ubuntu 20.04 和 Debian 两个子系统,PyCharm 里明明配置的是 Debian 的/usr/bin/python3,但他本人一直以为自己在用 Ubuntu。跑出来的结果对不上,查了半天才发现是发行版选错了。
所以,搞清楚“PyCharm 在跑哪个环境”,第一件事不是看 PyCharm,而是先搞清楚你的电脑上有几个 WSL 发行版,默认发行版是哪个,你真正想用哪个。
2. 三步定位:当前 PyCharm 真正运行的解释器长什么样
2.1 第一步:看 PyCharm 解释器设置页面上的“死穴”
打开 PyCharm,进入File -> Settings -> Project -> Python Interpreter(macOS 上是PyCharm -> Preferences -> Project -> Python Interpreter)。在这里,右侧下拉框会显示当前项目使用的解释器。
点击解释器下拉框旁边的齿轮图标,选Show All,会弹出一个列表。如果里面已经有 WSL 类型的解释器,它会显示对应的发行版名称和路径。注意观察路径里的发行版标识,比如\\wsl$\Ubuntu-22.04\...还是\\wsl$\Debian\...。
如果这里完全没有 WSL 解释器,说明你还没有正确添加。你需要在弹出的窗口中点击加号,选择WSL,然后 PyCharm 会尝试检测已安装的发行版。这里有一个容易被忽略的细节:PyCharm 的版本不同,检测 WSL 发行版的能力也不同。较老版本的 PyCharm 可能只能识别默认发行版,无法让你自由选择其它发行版。如果遇到这种情况,最简单的处理方式是把你想用的发行版设为默认,或者升级 PyCharm 到较新版本。
2.2 第二步:在 PyCharm 终端里跑一段“验明正身”的命令
设置界面看了半天,你还是有可能被表面信息骗到。最可靠的验证方式,是直接在 PyCharm 自带的终端里执行一段命令,让 Python 自己说出它在哪里。
PyCharm 的终端窗口默认会激活你当前项目选择的解释器环境。如果你配置的是 WSL 解释器,终端通常会自动进入 WSL 的 shell。此时你依次执行:
which python which python3 python -c "import sys; print(sys.executable)" python -c "import sys; print(sys.prefix)"第一行which python会告诉你当前 shell 环境解析到的python命令到底位于哪个目录。第二行同理,但默认的python和python3有时候指向不同的可执行文件,这个区别在标准 WSL 发行版里很常见。第三行是绝杀手段:它会让 Python 打印出sys.executable,也就是当前运行的 Python 解释器的绝对路径。这个路径是不会骗人的。
还有一个命令非常推荐:
python -c "import site; print(site.getsitepackages())"它会输出当前解释器对应的第三方包安装目录。如果你发现这个目录和你想象的完全不一样,那就说明你当前跑的根本不是你以为的那个环境。
2.3 第三步:对比全局环境、虚拟环境、Conda 环境三者的优先级
在这一步,我们要搞清楚“环境”这个词到底有多少层含义。
在 WSL 里,最简单的环境是系统自带的 Python,也就是/usr/bin/python3。它由发行版的包管理器管理,在系统全局生效。你用sudo apt install python3-pip装的包,会安装到这个全局环境里。
比全局环境更常见的是虚拟环境(venv)。venv 是一个“局部副本”式的环境,它把 Python 解释器和第三方包目录都独立复制一份,放在你的项目目录里。激活 venv 之后,which python会指向你的项目目录下的venv/bin/python。这样你在这个项目里装什么都不会污染系统全局 Python。
再往下还有 Conda 环境。Conda 是另一个路径逻辑,它的环境目录一般放在~/miniconda3/envs/或~/anaconda3/envs/下,由 Conda 管理。Conda 环境的好处是可以自由控制 Python 版本,比如全局是 Python 3.10,但某个项目需要 Python 3.8,你用一个 Conda 环境就能隔离。
这三者经常是嵌套和叠加的。PyCharm 只会看你指定的解释器文件是谁,它不会自动帮你判断这是 venv、Conda 还是系统 Python。所以你必须自己想清楚:你希望 PyCharm 用哪一层环境,然后在配置解释器时,把它对应的bin/python可执行文件精确选择出来。
下面的表格可以帮你快速对照:
| 环境类型 | 常见路径特征 | 包安装命令 | PyCharm 中如何指定 |
|---|---|---|---|
| 系统全局 Python | /usr/bin/python3 | sudo apt install python3-xxx或pip install | 直接选/usr/bin/python3 |
| venv 虚拟环境 | /home/xxx/myproject/venv/bin/python | pip install(激活 venv 后) | 选venv/bin/python |
| Conda 环境 | /home/xxx/miniconda3/envs/myenv/bin/python | conda install或pip install | 选对应环境的bin/python |
3. 我在 WSL 里装了半天,PyCharm 却原地踏步:高频事故现场
3.1 事故一:pip 装进了系统 Python,PyCharm 用的是 venv
一个典型的崩溃场景是这样的:你在 PyCharm 的终端里(此时环境已经被自动激活成 venv),下意识敲了pip install torch。一切正常,进度条走完,显示安装成功。
然后当你写代码时,import torch却报错 ModuleNotFoundError。
问题出在哪?PyCharm 的终端默认激活的确实是项目里配置的 venv,但前提是终端正确绑定了这个解释器。如果你用的终端是系统默认的 WSL 发行版 shell,或者你没有注意终端标签页顶部显示的环境名称,很有可能你是在全局环境里执行了pip install。另外,有些人习惯了先手动敲deactivate或者在别的 shell 里操作,这也会让命令跑错地方。
如何判断?回到上一节的三步验证法,敲一下python -c "import sys; print(sys.executable)"。如果结果显示的是venv/bin/python,但你又确实用的是这个环境,那下一步就该检查pip本身是不是有问题。常见的情况是,WSL 发行版里pip命令和python -m pip指向不同的环境。比如系统默认的pip是 Python 2 时代的残留,或者/usr/local/bin/pip被另一个 Python 占用了。最稳妥的安装方式是永远用python -m pip install xxx而不是裸敲pip install xxx,这样装包时一定用的是当前python对应的解释器。
3.2 事故二:多个发行版共存时,PyCharm 连到了旧的 Ubuntu
我在前文提到过,WSL 可以装多个发行版。事故二就是由此而来。
假设你一开始装了 Ubuntu 20.04,在里面配好了环境,后来因为某些原因又装了 Ubuntu 22.04,并且把默认发行版切换到了新系统。但 PyCharm 的某个项目还停留在旧配置,指向的是 Ubuntu 20.04 里的 Python。这时你打开终端敲wsl,进去的是 Ubuntu 22.04,你在里面 pip install 了新包,回到 PyCharm 却发现代码里仍然找不到新装的东西——因为 PyCharm 里的解释器还是 Ubuntu 20.04。
排查方法很直接:在 Windows 的 PowerShell 或 CMD 里执行:
wsl -l -v它会列出所有已安装发行版的名称、状态和 WSL 版本。然后对照 PyCharm 的解释器路径里的发行版名称,看看是否一致。如果不一致,直接在 PyCharm 的解释器设置里删掉旧配置,重新添加新发行版下的解释器,或者用wsl --set-default把目标发行版设为默认。
3.3 事故三:PATH 混乱导致“能 import 但启动报错”
有时候你确实选对了解释器,但运行时还是会出错。比如,PyCharm 启动脚本时报错说找不到gcc,或者glibc版本不匹配,又或者某个动态链接库缺失。
这类问题并不总是 Python 环境本身的问题,很多时候是 WSL 里的系统环境变量 PATH 没有正确设置。PyCharm 启动 WSL 解释器时,会继承它在 WSL shell 里解析到的一整套环境变量。如果你的.bashrc或.profile文件有问题,比如有一段代码在非交互式 shell 里没有执行,那你手动打开终端时好好的,但 PyCharm 调起来时确实不在最佳状态。
一个很隐蔽的坑是:某些教程会在.bashrc里加 Conda init 代码,但安装了多个 Conda 版本或者路径写错之后,会在 PATH 中形成一条死链。这时用 PyCharm 启动解释器,Python 模块能导入,但调用某些系统工具时就会失败。
遇到这类问题,我的建议是先别碰 PyCharm,直接在 WSL 终端里执行:
env | sort打印当前环境变量,然后手动确认 PATH、HOME、LD_LIBRARY_PATH 等关键变量的值是否符合预期。如果不符合,修改 shell 配置文件,重新source ~/.bashrc验证,修复后再回到 PyCharm 重新加载解释器。有时候 PyCharm 会缓存环境变量,你需要删除解释器配置后重新添加,或者重启 PyCharm,让它重新探测环境。
3.4 事故四:PyCharm 里 Code Runner 和你实际环境不一致
很多项目里除了直接点运行按钮,还会用到 Python 文件的右键菜单,或者某个代码运行插件的“运行”功能。这些运行入口可能不经过 PyCharm 的解释器机制,而是直接调用系统终端里的某个python命令。
比如你用了一个代码运行插件,它默认调用的是python3,而这个python3在 PyCharm 的终端里可能被 venv 的bin目录覆盖了。问题就在于,某些插件读取的解释器路径不是 PyCharm 当前项目解释器,而是插件的独立配置,或者直接读取 PATH 里的默认值。
这种错位的典型表现是:PyCharm 的主运行按钮跑得好好的,但用插件跑同一份代码就报错找不到模块。
处理办法没有太多捷径,只能在使用某一个运行入口前,先确认它到底把哪个解释器当作目标。如果是常用插件,进它的设置页面,找到 Python 解释器或 Python 路径的配置项,手动指向和项目解释器一致的bin/python。如果是右键菜单调用,检查它是否沿用了 PyCharm 的默认解释器配置。总之,把每个运行入口都当成“独立的小项目”去检查,就不会被表面的一致性骗过去了。
4. 从零搭一套不迷路的 PyCharm + WSL 环境(含 PyTorch 示例)
4.1 准备阶段:安装 WSL 发行版时的两条实用建议
如果你想彻底脱离这种“环境混乱”的状态,我建议你从全新的 WSL 环境开始,按照下面这套流程走一遍。
第一,安装 WSL 发行版时,别直接把发行版装在默认位置。Windows 的 C 盘往往空间紧张,而 WSL 的系统文件会随着你安装 Python 包、CUDA 工具链、conda 缓存等迅速膨胀。用wsl --install -d Ubuntu-22.04装完之后,可以用wsl --export导出再wsl --import到 D 盘或其他大分区。这一步操作起来需要一点命令行经验,但一劳永逸,强烈建议做。
第二,进入 WSL 之后,先更新系统包缓存:
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential git curl wget这套基础编译工具链很重要。很多 Python 包在安装时会尝试从源码编译,缺少build-essential会直接导致 pip 报错。而且 PyTorch 这类项目虽然通常有预编译轮子,但依赖的底层库仍然需要系统级别的基础包支持。
4.2 在 WSL 里用 uv 创建项目级 Python 环境
新版 PyCharm 和社区生态里,我越来越推荐用 uv 管理 Python 环境和依赖。uv 是一个用 Rust 写的 Python 包和项目管理工具,它的速度比传统 pip/venv 快一个量级,而且能自动管理 Python 版本。
安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh装完后添加到 PATH,然后创建一个项目目录,并在项目内初始化虚拟环境:
mkdir -p ~/projects/torch-demo && cd ~/projects/torch-demo uv venv .venv source .venv/bin/activate这样你的虚拟环境明确放在当前项目目录的.venv之下,之后装任何东西都是项目隔离的。
如果你需要在环境里指定 Python 版本,比如想要 Python 3.11,可以直接:
uv python install 3.11 uv venv --python 3.11 .venvuv 会自动下载一个独立的 Python 3.11 解释器,与系统自带的 Python 完全隔离。这样你就彻底告别了/usr/bin/python3和/usr/local/bin/python3打架的问题。
接着安装 PyTorch。这里有一个关键点:WSL 2 底层的虚拟化方案与原生 Linux 基本一致,NVIDIA 的 CUDA 工具链在 WSL 2 里通常可以直接使用,不需要你手动安装完整的 Linux 驱动,只需要在 Windows 侧装好 NVIDIA 显卡驱动,然后在 WSL 里安装对应版本的 CUDA Toolkit 或直接使用 PyTorch 的预编译版本。
uv pip install torch --index-url https://download.pytorch.org/whl/cu121验证一下:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"如果输出True,说明环境已经可以调用 GPU 了。这一步在 PyCharm 里非常直观。所以如果只是想跑 PyTorch,你甚至不用在 WSL 里额外折腾 CUDA 环境变量。
4.3 回 PyCharm 配置 WSL 解释器和文件映射
接下来,要让 PyCharm 认识你的 WSL 环境和项目文件。
首先,PyCharm 打开项目的方式有两种:一种是从 Windows 侧打开 Windows 目录里的项目,另一种是直接在 PyCharm 中打开\\wsl$路径下的项目。两者差别很大。如果你想让 PyCharm 和 WSL 里的终端所见即所得,我建议直接把项目放在 Linux 侧,然后通过\\wsl$路径在 PyCharm 中打开。这样你在 Windows 侧的 PyCharm 里编辑的全是 Linux 文件,命令、路径、权限都保持在 WSL 逻辑内,不容易出偏差。
打开方式:在 PyCharm 的欢迎界面选Open,在文件选择框里输入\\wsl$\Ubuntu-22.04\home\username\projects\torch-demo,或者通过左侧的 WSL 节点逐步进入。
项目打开之后,配置解释器:
File -> Settings -> Project -> Python Interpreter -> Add Interpreter -> WSL。
在弹窗里选择对应的发行版,然后手动指定解释器的可执行文件路径。因为我们用 uv 创建的 venv 放在了项目的.venv目录,所以这里的路径应该是:
/home/username/projects/torch-demo/.venv/bin/python选择完成后确认。此时 PyCharm 会开始索引这个解释器,执行环境检测,列表里会显示已安装的包和 Python 版本。耐心等待索引完成,中途别去删除任何 WSL 相关目录,否则 PyCharm 可能崩溃或者丢失配置。
4.4 跑通验证:在 PyCharm 中以 WSL 环境运行脚本
配置完成后,写一个最简单的脚本测试:
import sys import torch print("Python executable:", sys.executable) print("PyTorch version:", torch.__version__) print("CUDA available:", torch.cuda.is_available()) import torch as t x = t.rand(3, 3) print(x)点击运行。如果控制台输出的sys.executable路径指向\\wsl$\Ubuntu-22.04\home\username\projects\torch-demo\.venv\bin\python,说明 PyCharm 确实在用你的 WSL 虚拟环境。输出的 tensor 是 CPU 还是 GPU 上的不重要,关键是你能确定这就是正确的环境。
如果运行结果中sys.executable还是指向/usr/bin/python3,立刻回设置页面检查解释器路径,别急着写代码。
另外,PyCharm 的测试框架配置也值得留意。如果你用的是 pytest,在Settings -> Tools -> Python Integrated Tools -> Testing里把默认 pytest 路径也指到 WSL 环境,不然你点“运行 pytest 用例”时可能用的又是另一个解释器。这个问题藏得比较深,但是一旦遇到也容易绕半天。
5. 环境迁移、重建与日常维护的几条经验
5.1 如何判断是否需要重装 WSL 发行版
WSL 环境用得久了,会出现一些诡异的 Zustand,比如systemd起不来、包管理器报错、Python 环境被各种实验性操作改得面目全非。这时候,很多人会去改配置、修依赖、心力交瘁地折腾半天。我的经验是,当你在一个 WSL 发行版里已经连续遇到三个以上“搜不到解决办法”的环境问题时,重建是更高效的方案。
重建的过程完全可控,前提是你从一开始就固定好了项目目录和环境描述文件。
在重建之前,先把当前环境里的关键文件做一个备份:
cd ~ tar czf wsl-backup.tar.gz projects .conda .config 2>/dev/null然后:
wsl --shutdown wsl --export Ubuntu-22.04 D:\wsl-backup\ubuntu-22.04.tar wsl --unregister Ubuntu-22.04 wsl --import Ubuntu-22.04 D:\wsl\ubuntu-22.04\ D:\wsl-backup\ubuntu-22.04.tar注意,wsl --unregister会彻底删除该发行版的文件系统,这一步操作前必须确认备份完整。如果你不想这么激进,至少在重装前把项目的pyproject.toml、uv.lock、requirements.txt等文件复制出来,因为这些才是真正能让你快速恢复环境的核心资产。
5.2 用 uv.lock 或 requirements.txt 固定环境,避免“换台机器就崩”
“在我电脑上明明能跑”这句话,很多开发者的噩梦版本是“在我电脑上明明能跑,怎么换到你这就崩了”。要避免这种情况,项目依赖必须锁定到具体的版本。
传统做法是用 pip 生成 requirements.txt:
pip freeze > requirements.txt但 pip freeze 的问题在于它把当前环境的所有包都列出来,包括一些隐性的传递依赖,别人从 requirements.txt 恢复时容易出现版本冲突。我的建议是分层次锁定。
如果你用 uv,直接生成 lockfile:
uv lock它会精确锁定所有传递依赖的版本和哈希,别人拿到项目后执行uv sync,就能得到一个几乎完全一致的 Python 环境。这个方案在 WSL 和 PyCharm 的组合下尤其舒服,因为 uv sync 不需要预先激活任何环境,它会自动创建.venv并安装所有依赖。
如果项目里已经有 Conda 需求,同样可以用 conda env export 导出环境描述。不过 Conda 的导出文件往往包含大量与硬件平台相关的信息,跨机器跨平台时不一定能直接使用,建议同时保留一份 requirements.txt 以备兼容。
5.3 常用排查命令和 .wslconfig 调整
日常排查环境问题时,有几条命令值得背下来。
在 Windows 侧:
wsl -l -v验证发行版和 WSL 版本。
wsl --status查看 WSL 默认版本和内核状态。
在 WSL 侧:
echo $WSL_DISTRO_NAME这个环境变量会直接告诉你当前 shell 属于哪个发行版。遇到“我到底在哪”的混乱时刻,先敲这一行。
ls -l /proc/version python -c "import sys; print(sys.executable)"这两条能确认内核版本和当前 Python 路径。
如果你发现 WSL 2 的性能不太行,还可以在 Windows 用户目录下创建.wslconfig文件进行调整:
[wsl2] memory=8GB processors=4 swap=4GB这个配置在 Windows 的%UserProfile%目录下,文件名就叫.wslconfig。调整之后执行wsl --shutdown再重新进入,让配置生效。内存分配和处理器数量按你机器实际配置来,别乱填超过物理上限的值。
5.4 个人习惯:项目文件放 Linux 侧,Windows 侧只做入口
最后分享一个我踩了很多坑之后总结出来的习惯。
我在 WSL 里的所有项目文件都放在/home/username/projects/下,Windows 侧的编辑器统一通过\\wsl$访问。这样做最大的好处是,文件权限、路径分割符、软链接行为都和 Linux 保持一致,不会出现“在 Windows 编辑器里保存的文件在 WSL 里变成 CRLF 行尾”这种琐碎问题。
当然,把项目放在 Linux 侧会牺牲一些 Windows 工具的访问便利性。比如你不想在 PyCharm 里做图形化文件对比,或者你想用 Windows 的 Git GUI 软件操作仓库,跨文件系统的体验会差一些。但考虑到环境一致性对排错效率的影响,我个人觉得这点牺牲非常值。
如果你已经把项目放在 Windows 侧,也没关系。PyCharm 的映射机制能正常工作,只是你需要时刻提醒自己:“Windows 侧的目录和 WSL 内部的/mnt/c/...是同一个文件,但环境变量、Python 解释器和权限都是 WSL 的。”这个念头一旦立住,你排查环境问题时就会清晰很多。
说到底,PyCharm 连 WSL 这件事,难的不是点几下鼠标,而是你要建立起一整套“文件系统、解释器、终端、运行入口”相互关联的心智模型。每当你看到一个环境问题时,先问三个问题:当前终端在哪个发行版?当前 Python 解释器的绝对路径是什么?当前运行的入口用的是哪套配置?把这三个问题回答清楚,绝大多数环境迷局都能当场破解。