从零搭建Win11下的AI开发工作站:WSL2+Ubuntu20.04与Anaconda环境全攻略
1. 为什么选择WSL2+Ubuntu20.04做AI开发?
如果你正在Windows系统上学习深度学习或进行AI项目开发,可能会遇到各种环境配置的麻烦。Python版本冲突、CUDA驱动安装失败、Linux特有工具无法使用等问题常常让人头疼。而WSL2(Windows Subsystem for Linux)提供了一个完美的解决方案——它让你能在Windows 11上运行原生的Linux环境,同时保持与Windows系统的无缝集成。
我最初接触WSL2是因为需要在本地调试一些只在Linux服务器上运行的代码。传统虚拟机太笨重,双系统切换又太麻烦。实测下来,WSL2的性能接近原生Linux,特别是文件系统性能比早期的WSL1提升明显。搭配Ubuntu20.04这个长期支持版本(LTS),系统稳定性也有保障。
对于AI开发来说,这个组合有三大优势:
- GPU加速支持:WSL2可以直接调用Windows安装的NVIDIA显卡驱动,无需在Linux中重复安装
- 内存效率高:相比虚拟机,WSL2内存占用更少,我的16GB内存笔记本同时开PyTorch训练和浏览器查资料毫无压力
- 开发体验好:VSCode的WSL插件让你能在Windows下用熟悉的编辑器操作Linux文件
2. 准备工作:开启虚拟化与安装WSL2
2.1 检查并开启CPU虚拟化
WSL2需要CPU虚拟化技术支持,大多数现代CPU都支持这个功能,但可能默认关闭。我遇到过好几次新手因为没开这个选项导致安装失败的情况。
检查方法很简单:
- 打开任务管理器(Ctrl+Shift+Esc)
- 切换到"性能"标签页
- 查看右下角"虚拟化"状态
如果显示"已禁用",就需要进入BIOS开启。不同主板的进入方式略有差异:
- 常见品牌机:开机时按F2或Del键
- 联想笔记本:可能需要按Fn+F2组合键
- 华硕主板:通常按F2或Del
进入BIOS后,找到类似"Intel Virtualization Technology"(Intel CPU)或"SVM Mode"(AMD CPU)的选项,将其设置为Enabled。保存退出后,再次检查任务管理器确认已启用。
2.2 安装WSL2核心组件
Windows 11虽然默认支持WSL,但还需要安装两个关键组件:
- 适用于Linux的Windows子系统
- 虚拟机平台
安装方法:
# 以管理员身份打开PowerShell
wsl --install
这个命令会自动安装所需组件。如果你想手动安装,可以:
- 搜索"启用或关闭Windows功能"
- 勾选上述两个选项
- 重启电脑
安装完成后,建议将WSL2设为默认版本:
wsl --set-default-version 2
3. 安装Ubuntu20.04 LTS
3.1 从微软商店获取Ubuntu
不同于传统Linux安装,WSL下的Ubuntu安装简单得像下载一个APP:
- 打开Microsoft Store
- 搜索"Ubuntu 20.04 LTS"
- 点击获取(完全免费)
安装完成后,第一次启动会提示设置用户名和密码。这里有个小坑:密码输入时不会显示字符,这是Linux终端的正常行为,不是卡住了,正常输入后回车即可。
如果误关了初始设置窗口,再次打开可能会直接进入root用户。这时可以手动创建新用户:
adduser yourname
usermod -aG sudo yourname # 赋予sudo权限
3.2 配置终端环境
Windows Terminal是管理WSL的最佳伴侣,建议从微软商店安装。安装后:
- 打开设置 > 添加新配置文件
- 选择Ubuntu20.04
- 可以自定义配色方案和字体
我习惯将默认启动目录设为用户主目录,这样每次打开都在/home/yourname下工作。配置方法是在设置中追加:
"startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\home\\yourname"
验证WSL版本:
wsl -l -v
如果显示版本为1,需要转换:
wsl --set-version Ubuntu-20.04 2
4. VSCode与WSL2的无缝集成
4.1 安装必要插件
VSCode通过Remote - WSL插件实现了对WSL的完美支持。安装步骤:
- 在扩展商店搜索"Remote - WSL"
- 安装后左下角会出现绿色远程连接图标
- 点击图标选择"连接到WSL"
第一次连接会自动在WSL中安装VSCode服务器组件,这个过程可能需要几分钟。连接成功后,你会在左下角看到"WSL: Ubuntu-20.04"的标识。
4.2 优化开发体验
几个实用技巧:
- 文件操作:直接在VSCode资源管理器中右键WSL文件,选择"在本地打开",就能用Windows应用编辑
- 终端集成:Ctrl+`打开的终端直接是WSL环境,无需额外配置
- 端口转发:WSL中的服务(如Jupyter Notebook)自动映射到Windows的localhost
我习惯在WSL中创建项目目录,然后用VSCode打开:
mkdir ~/projects
code ~/projects
这样所有开发都在Linux环境下进行,但享受Windows的图形界面体验。
5. Anaconda环境配置全攻略
5.1 安装Anaconda
首先更新软件源并安装依赖:
sudo apt update && sudo apt upgrade -y
sudo apt install wget curl git -y
下载Anaconda安装脚本(建议使用国内镜像加速):
wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2022.05-Linux-x86_64.sh
安装过程需要注意:
- 按回车阅读许可协议(长按空格快速到底)
- 输入yes同意条款
- 安装路径建议保持默认
- 最后选择"yes"初始化conda
安装完成后,关闭并重新打开终端,你会看到(base)前缀,表示conda基础环境已激活。
5.2 配置国内镜像源
conda和pip默认源在国内可能很慢,更换为国内镜像能大幅提速。
配置conda镜像:
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
conda config --set show_channel_urls yes
配置pip镜像:
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple
验证配置是否生效:
conda info # 查看channels
pip config list # 查看pip源
6. 创建深度学习专用环境
6.1 构建Python虚拟环境
为每个项目创建独立环境是个好习惯,避免包冲突。以《动手学深度学习》环境为例:
conda create -n d2l python=3.9 -y
conda activate d2l
安装基础数据科学套件:
conda install numpy pandas matplotlib scikit-learn -y
6.2 安装PyTorch与GPU支持
首先确认CUDA版本:
nvidia-smi # 需要先在Windows安装NVIDIA驱动
根据CUDA版本选择PyTorch安装命令(以CUDA 11.6为例):
conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge
验证GPU是否可用:
import torch
print(torch.__version__)
print(torch.cuda.is_available()) # 应该返回True
print(torch.version.cuda) # 显示CUDA版本
如果cuda.is_available()返回False,可能是:
- Windows的NVIDIA驱动未安装
- WSL2的CUDA支持未开启(需要Windows 11 21H2以上版本)
- PyTorch版本与CUDA版本不匹配
6.3 配置Jupyter Notebook
安装Jupyter核心组件:
pip install jupyter notebook
生成配置文件并修改:
jupyter notebook --generate-config
sed -i "s/# c.NotebookApp.token = '<generated>'/c.NotebookApp.token = ''/" ~/.jupyter/jupyter_notebook_config.py
这样启动notebook时就不需要输入token了:
jupyter notebook --ip=0.0.0.0 --no-browser
在VSCode中使用更简单:
- 安装Jupyter扩展
- 新建.ipynb文件
- 右上角选择d2l环境的内核
- 直接运行代码单元格
7. 性能优化与实用技巧
7.1 文件系统性能调优
WSL2的Linux文件系统性能比Windows文件系统慢很多,建议:
- 将项目代码放在WSL文件系统内(如~/projects)
- 大型数据集可以放在Windows分区,通过/mnt/c访问
- 避免在Windows资源管理器中直接修改WSL文件
可以通过.wslconfig文件调整资源分配(创建在C:\Users\你的用户名下):
[wsl2]
memory=8GB # 限制最大内存
processors=4 # 限制CPU核心数
localhostForwarding=true
7.2 常见问题解决
问题1:apt-get update报错"Failed to connect to raw.githubusercontent.com" 解决:这是DNS解析问题,修改WSL的resolv.conf:
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
问题2:VSCode无法连接到WSL 解决:通常是因为WSL实例没有运行,在PowerShell执行:
wsl -d Ubuntu-20.04
问题3:conda环境在VSCode中不显示 解决:在VSCode中按Ctrl+Shift+P,输入"Select Interpreter",手动选择路径类似:
\\wsl$\Ubuntu-20.04\home\yourname\anaconda3\envs\d2l\bin\python
8. 完整AI开发工作流演示
现在让我们用这个环境跑一个完整的深度学习例子:
- 下载《动手学深度学习》代码:
git clone https://github.com/d2l-ai/d2l-zh.git
cd d2l-zh/pytorch
- 安装额外依赖:
pip install d2l
-
在VSCode中打开chapter_convolutional-neural-networks/lenet.ipynb
-
逐单元格运行,你会看到:
- 数据自动下载到~/.mxnet/datasets
- 模型训练过程显示实时loss
- GPU利用率可以通过nvidia-smi查看
- 尝试修改超参数(如batch_size、learning_rate)并重新训练
这套环境足够完成大多数深度学习实验。当需要更强大的算力时,你可以将相同的conda环境导出,轻松迁移到云服务器:
conda env export > environment.yml
更多推荐


所有评论(0)