Skip to content

基于 WSL 和 Mamba 优雅配置深度学习环境

约 1675 字大约 6 分钟

Deeplearning

2025-08-21

最近在寻找一些深度学习环境的配置教程供新人们学习,但是找了一圈基本都不满意,不是安装繁琐,就是和现代开发脱节……干脆自己写一篇现代的配置方案。

本文介绍使用 WSL 进行配置深度学习环境。内容包括:

WSL 的安装及自动代理;Miniconda 和 Mamba 安装;PyTorch GPU 版本安装。

1 WSL

适用于 Linux 的 Windows 子系统(Windows Subsystem for Linux)在 Windows 系统中提供了 Linux 的实现,并且和 Windos 在硬件和文件系统上实现互通。

1.1 WSL 安装

一般来说,你可以在 Microsoft Store 获取 Linux 发行版,如 Ubuntu 24.04.1 LTS

如果 Microsoft Store 无法打开,则可以通过 PowerShell 安装。以管理员身份打开 PowerShell,输入:

wsl --install Ubuntu-24.04

即可启用 WSL 并安装 Ubuntu 发行版。

参考资料:如何使用 WSL 在 Windows 上安装 Linux

1.2 设置 Linux 用户名和密码

从开始菜单或使用命令wsl启动 Ubuntu 子系统,第一次启动时要求输入 Ubuntu 用户名和密码。

Installing,this may take a few minutes...
Installation successful!
Please create a default UNIX user account, The username does not match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:

然后输入用户名和密码。

  • Ubuntu 用户名和密码与 Windows 用户名和密码无关。
  • 输入密码时将会隐藏输入。
  • 创建用户名和密码后,该用户将是 Ubuntu 的默认用户,并将在启动时自动登录。

参考资料:设置 Linux 用户名和密码

1.3 配置 WSL 网络为镜像模式

在默认情况下,WSL 与 Windows 的网络环境是隔离的,因此 WSL 无法直接访问 Windows 应用所使用的端口。这在深度学习环境配置中可能带来不便。通过启用 mirrored 模式,WSL 可以与 Windows 共享网络环境。

打开 PowerShell,输入:

code %USERPROFILE%\.wslconfig

将会使用 VSCode 打开 WSL 配置文件,输入:

[experimental]
autoMemoryReclaim=gradual    # 自动内存回收
networkingMode=mirrored      # 镜像网络模式
dnsTunneling=true            # DNS 隧道
firewall=true                # Hyper-V 防火墙
autoProxy=true               # 自动代理,使 WSL 能够使用 Windows 的 HTTP 代理
sparseVhd=true               # 默认启用稀疏 VHD

保存,然后使用wsl --shutdown关闭 WSL 以应用配置。

启用autoProxy后,当 Windows 系统的代理配置发生变化时,WSL 会提示你重启以同步更新。

1.4 更新软件包

进入 Ubuntu 更新软件包到最新:

sudo apt update && sudo apt upgrade -y

1.5 使用 VSCode 连接到 WSL

VSCode 提供了对 WSL 的完善支持。打开 VSCode,点击左下角的“打开远程窗口”按钮,连接到 WSL 即可。

2 Miniconda 和 Mamba

Conda 是一个常用的 Python 包和环境管理工具,而 Miniconda 则是 Anaconda 的精简版本,仅保留其核心功能。

Mamba 则作为 Conda 的高性能替代实现而诞生,它重构了 Conda 的依赖解析与下载机制,通过多线程并行下载显著提升了环境解析和安装的速度。

而 Mamba 基于 Conda 环境,因此需要先安装 Miniconda。

2.1 Miniconda

Miniconda 官方仓库下载并运行最新的安装脚本。

cd ~

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

sh Miniconda3-latest-Linux-x86_64.sh

运行脚本后会弹出:

Welcome to Miniconda3 py313_25.5.1-1

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>

按回车确认继续。然后阅读 MINICONDA END USER LICENSE AGREEMENT,此处按方向下键或 PageDown 键至末尾,输入yes进行安装。

MINICONDA END USER LICENSE AGREEMENT

...

Do you accept the license terms? [yes|no]
>>>

选择安装路径,按回车安装至默认位置(~/miniconda3/):

Miniconda3 will now be installed into this location:
/home/yoake/miniconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/home/yoake/miniconda3] >>>

询问是否要将 Conda 命令注入到终端,输入yes

You can undo this by running `conda init --reverse $SHELL`? [yes|no]
[no] >>>

至此安装完成,重启终端即可。

==> For changes to take effect, close and re-open your current shell. <==

Thank you for installing Miniconda3!

如果你不想每次打开终端就进入 base 环境,则可以执行以下命令:

conda config --set auto_activate_base false

2.2 Mamba

切换到 base 环境,然后安装 Mamba:

conda activate base
conda install mamba -n base -c conda-forge

然后执行命令使 mamba 自动完成初始化:

mamba shell init --shell bash --root-prefix=/home/yoake/miniconda3

Mamba 几乎实现了对所有 Conda 命令的替代,只需要把conda替换为mamba即可:

# 创建虚拟环境
conda create -n myenv python=3.10 -y
mamba create -n myenv python=3.10 -y

# 切换虚拟环境
conda activate myenv
mamba activate myenv

# 安装包
conda install pytorch
mamba install pytorch

3 PyTorch

现在已经不推荐从源码安装 CUDA Toolkit 和 cuDNN,而是借助 conda 进行安装。

首先创建虚拟环境:

mamba create -n deeplearning python=3.10 -y

Conda 包的版本约束

你可能注意到,以下两条命令的行为是不同的:

mamba create -n deeplearning python=3.10 -y
mamba create -n deeplearning python==3.10 -y

=表示安装 3.10 系列的最新版本(比如 3.10.18),Conda 会自动解析最新的小版本。而==会锁死到 3.10.0,而不是最新的 3.10.x。

激活虚拟环境,然后安装pytorch-cudapytorch-cuda是 Conda 的一个虚拟包,用来给 PyTorch 安装对应 CUDA runtime 和 cuDNN 的,其目的是让你在 Conda 环境里直接用 GPU 版本的 PyTorch,而不需要安装系统级 CUDA Toolkit。

你可以在这里找到各个包的版本对应关系,以及对应的安装命令。

如对于 PyTorch 1.13.1,使用以下命令安装:

mamba install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia -y

安装完成后,使用以下命令检查是否配置成功:

python -c "import torch; print('Torch version:', torch.__version__); print('CUDA available:', torch.cuda.is_available()); print('CUDA version:', torch.version.cuda); print('Current device:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'CPU')"

期望输出:

Torch version: 1.13.1
CUDA available: True
CUDA version: 11.7
Current device: NVIDIA GeForce RTX 4060 Ti

至此,环境配置结束。

4 常见问题

4.1 PyTorch 训练或推理时报错

  • Could not load library libcudnn_cnn_infer.so.8. Error: libcuda.so: cannot open shared object file: No such file or directory

这是 PyTorch 加载 cuDNN 库时失败了,因为找不到它依赖的 libcuda.so。

使用nvidia-smi检查驱动是否正常,然后确认 cuDNN 是否已安装:

mamba list | grep cudnn

例如以下输出:

pytorch  1.13.1  py3.10_cuda11.7_cudnn8.5.0_0  pytorch

然后查找libcuda.so

find /usr -name "libcuda.so*"

期望结果:

/usr/lib/wsl/lib/libcuda.so

这说明 Windows 侧的 GPU 驱动已经传进来了,只是 PyTorch 在运行时没有找到这些库。只需要添加环境变量即可解决问题。

echo 'export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

Copyright ©️ 2024 - 2025 YOAKE | Powered by VuePress & Plume
冀 ICP 备 2025102465号-1 · 京公网安备 11011502038573 号