admin 管理员组文章数量: 887609
前言
最近在搭建基于 win11 的 WSL2 开发环境,找了很多教程也遇到了很多问题,历时两天终于搞定了。本文为首次搭建环境的朋友提供一站到底的帮助,保证一次到位,不走弯路😎
搭建的环境:WSL2 + Ubuntu22.04 + Clash(代理) + Miniconda3 + Pytorch(GPU支持)
BIOS 开启虚拟化支持
现在一般的主板都默认开启的(平时用的安卓模拟器都需要开),也可以检查和开启BIOS虚拟化支持
windows 启用子系统及虚拟化
- 打开
控制面板
- 选择
程序
->启用或关闭 Windows 功能
- 勾选
Hyper-V
、适用于 Linux 的 Windows子系统
和虚拟机平台
- 点击
确定
- 重启计算机
安装 WSL2
这里提供了命令行安装
和分步安装
两种方法,也可以参考官网教程安装。
命令行安装
直接使用如下命令,安装默认的Linux
分发版(截止2024-06-20,安装的是Ubuntu22.04
)
wsl --install
你也可以指定安装的Linux
分发版
# 查看Linux分发(等同于 wsl -list -online)
wsl -l -o
# 安装指定分发
wsl --install -d Ubuntu-20.04
分步安装
安装内核更新包
- 下载适用于 x64 计算机的 WSL2 Linux 内核更新包
- 安装更新包,双击直接下一步即可
- 更新 WSL2(建议更新,后面也会提示你更新)
wsl --update
设置默认 WSL 版本
# 将 WSL 默认版本设置为 WSL2
wsl --set-default-version 2
配置 Linux 分发版
这里提供两种方法,第一种可能会失败,建议第二种。
(1)打开Microsoft Store
,搜索Ubuntu
,安装你需要的版本即可(不建议)。
获取后,等待 1-2 分钟,会提示你创建用户名和密码,等待安装完成。
(2)去官网下载安装包,手动安装(建议)
找到如图这个地方,点击下载你需要的分发版:
下载好后双击安装包,创建用户名密码后,等待安装完成。
至此我们已经完成 WSL 系统的安装。
迁移 WSL
WSL
默认安装在 C 盘,针对后续还要配置环境来说,肯定是不够的(什么?你C盘几百个G?当我没说…),这时就要把它迁移到其他盘。
- 查看正在运行的实例
wsl -l -v
(不用管我的名称为什么不一样,我已经安装过了)
- 终止正在运行的实例
(也有人说不需要终止也可以,我没测试过)
wsl --terminate <实例名称>
- 导出需要迁移的实例
wsl --export <实例名称> <迁移地址>
如:
wsl --export ubuntu2204 D:\ubuntu2204.tar
- 卸载原来的实例
wsl --unregister <实例名称>
- 导入实例到其他盘(–version 2 可以不加,之前已经默认了 WSL2)
wsl --import <新的实例名称> <新的实例导入地址> <导入实例的地址> --version 2
如:
wsl --import new_ubuntu2204 D:\wsl\ D:\ubuntu2204.tar --version 2
导入完成后,可以通过 cmd(也就是Windows Terminal
) 进入系统:
- 安装完成后,可以在 Windows 的资源管理器看到 Ubuntu 的文件目录
在这里面你可以很方便的管理系统文件,以及在 windows 和 Ubuntu 系统间互传文件。
网络代理配置(Clash)
从事机器学习的你,相信一定会对某些网站的网速十分头疼,这时候就要启用我们的代理了。
❗︎这里只针对 WSL2,WSL1 请自行百度。
- 在
C:\Users\<你的用户名>
下,新建.wslconfig
文件
- 添加如下配置(具体配置参考官方文档):
精简版配置:
[experimental]
# 启用空闲内存自动缓慢回收
autoMemoryReclaim=gradual
# 启用镜像网络特性支持
networkingMode=mirrored
# WSL2/WSLg DNS 代理隧道,以便由 Windows 代理转发 DNS 请求(请根据实际需要启用)
dnsTunneling=true
# WSL2/WSLg 子系统的 Windows 防火墙集成,以便 Hyper-V 或者 WPF 能过滤子系统流量(请根据实际需要启用)
firewall=true
# 是否强制 WSL2/WSLg 子系统使用 Windows 代理设置(请根据实际需要启用)
autoProxy=true
更多的推荐配置
# 推荐的一些配置项如下
[wsl2]
# 是否强制 WSL2/WSLg 子系统使用 Windows 代理设置(请根据实际需要启用)
autoProxy=true
# WSL2/WSLg DNS 代理隧道,以便由 Windows 代理转发 DNS 请求(请根据实际需要启用)
dnsTunneling=true
# WSL2/WSLg 子系统的 Windows 防火墙集成,以便 Hyper-V 或者 WPF 能过滤子系统流量(请根据实际需要启用)
firewall=true
# 启用 WSLg GUI 图形化程序支持
guiApplications=true
# 启用 IPv6 网络支持
ipv6=true
# 启用 localhost 网络转发支持
localhostForwarding=true
# 限制 WSL2/WSLg 子系统的最大内存占用
memory=4GB
# 启用 WSL2/WSLg 子系统嵌套虚拟化功能支持
nestedVirtualization=true
# 启用镜像网络特性支持
networkingMode=mirrored
# 启用 WSL2/WSLg 子系统页面文件通报,以便 Windows 回收已分配但未使用的内存
#pageReporting=true
# 设置 WSL2/WSLg 子系统的逻辑 CPU 核心数为 8(最大肯定没法超过硬件的物理逻辑核心数)
processors=8
# 实验性功能
[experimental]
# 启用空闲内存自动缓慢回收
autoMemoryReclaim=gradual
# 启用 WSL2/WSLg 子系统和 Windows 宿主之间的本地回环互通支持
hostAddressLoopback=true
# 启用 WSL2/WSLg 子系统虚拟硬盘空间自动回收
sparseVhd=true
# 和 dnsTunneling 配合使用,决定是否使用 Windows DNS 缓存池
useWindowsDnsCache=false
- 重启 WSL 实例
wsl --shutdown
GPU 支持
安装 NVIDIA 驱动
❗︎注意:在 windows 安装
去官网下载一个 NVIDIA 驱动(如果你有,查看一下cuda版本,如果太低了Pytorch
都不支持这个版本,就更新一下😊)。
安装完成后,在 cmd 输入nvidia-smi
出现如下信息代表安装成功:
此时你的 WSL 里输入nvidia-smi
也应该出现类似的信息:
安装 CUDA
- 在官网里下载 CUDA,一定要对应版本,比如你安装的驱动支持的
CUDA
版本是 12.1,那么就下载CUDA Toolkit 12.1.0
- 按图所示选择,这里最好选择
runfile
,安装最简单(主要是其他的我没试过👻)
- 按照官方文档,执行最下方红框内的命令
这个文件特别大(4.5GB左右),注意开代理😉
# 打开要下载的目录
cd /usr/local
# 下载
wget https://developer.download.nvidia/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
- 下载好之后先别急,安装
gcc
依赖
# 更新 apt
sudo apt update
# 这个命令将会安装一系列软件包,包括 gcc、g++ 和 make。
sudo apt install build-essential
这将会安装默认的 gcc 11.x 版本(截止2024-06-20),包含了 gcc 9 和 10 版本。
- 执行安装
sudo sh cuda_12.1.0_530.30.02_linux.run
如果安装还报错,降低 gcc 最高优先级版本:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10
安装完成后,列表如下图
可以看到,有一个cuda
指向了cuda-12.4
的软连接。
- 配置环境变量
执行命令,配置cuda
到系统环境变量里
# 打开系统环境变量
vim /root/.bashrc
# 添加如下信息到文件末尾
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
如图,添加完后保存
使配置生效
source /root/.bashrc
Python 环境管理(Miniconda3)
系统配置好之后,为了方便管理Python
的环境和包,还需要安装 Miniconda3。
- 下载
Miniconda3
# 打开下载目录
cd /usr/local
# 下载
wget https://repo.anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
- 安装
sh Miniconda3-latest-Linux-x86_64.sh
安装过程中,会有一系列确认操作(我本地已经安装了,为了演示,我在阿里云服务器安装的)
输入回车,查看许可协议
输入q
退出协议阅读,输入yes
同意协议
输入安装位置,如果直接按回车,会安装到默认位置/root/miniconda3
,这里我输入的是/usr/local/miniconda3
是否在shell
启动时初始化base
环境,这里推荐输入yes
,不然在你执行conda
命令时会有点麻烦,参考第3步
回车后安装完成,就会在我们指定的安装位置有一个miniconda3
文件
输入命令出现如图代表安装成功
conda -V
- 如果你在
启动时初始化base环境
选择了no
,要手动配置环境变量
# 打开系统环境变量
vim /root/.bashrc
# 文件末尾添加
export PATH=/usr/local/miniconda3/bin:$PATH
# 使配置生效
source /root/.bashrc
❗︎注意:当你每次创建会话执行conda
命令时,必须首先激活base
环境,之前选的yes
则不需要,如:
# 激活base环境
source activate
# 进入其他环境
conda activate my_env
如果不想每次都这样操作,执行以下命令就可以了
conda init
- 修改镜像源
我们知道,使用默认的镜像源,会有让人头疼的网速问题,这里我们就需要更改镜像源了。
创建并打开 conda 配置文件
vim /usr/local/miniconda3/.condarc
创建环境和包存储地址
mkdir -p /data/Miniconda3/envs
mkdir -p /data/Miniconda3/pkgs
添加如下配置信息,我使用的是清华源
# 通道列表
channels:
- https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/msys2
- https://mirrors.tuna.tsinghua.edu/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu/anaconda/cloud/msys2/
- https://mirrors.tuna.tsinghua.edu/anaconda/cloud/bioconda/
- https://mirrors.tuna.tsinghua.edu/anaconda/cloud/menpo/
- https://mirrors.tuna.tsinghua.edu/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu/anaconda/cloud/pytorch-lts
- https://mirrors.tuna.tsinghua.edu/anaconda/cloud/simpleitk
- defaults
# 环境存储地址
envs_dirs:
- /data/Miniconda3/envs
# 包存储地址
pkgs_dirs:
- /data/Miniconda3/pkgs
# 显示搜索的通道列表
show_channel_urls: true
# 启动新的终端会话时是否自动激活base环境
auto_activate_base: false
修改pip
的下载源
pip config set global.index-url https://pypi.mirrors.ustc.edu/simple
执行完成后,会发现在/root/.config/pip
下生成了一个pip.conf
文件
安装 Pytorch GUP 版
这里讲述一下如何在WSL2
自己的环境里安装Pytorch GPU
版本。
创建环境
首先创建一个环境,Python
版本建议>=3.8
conda create -n <环境名称> python=3.9
下载
网上很多教程都叫你执行命令下载安装,但这样下载很缓慢,开了科学上网又访问不到,这里教大家如何浏览器下载后手动安装,你有更好的方法也可以略过。
打开官网下载链接,拉到底部,找到torch
、torchvision
和torchaudio
分别点进去下载对应的版本,torch
和torchaudio
保持一致,torchvision
对应好版本即可,可以打开官网看看
比如你是CUDA 12.1
+ python 3.9
,想下载torch 2.3.0
,就在浏览器Ctrl + F
搜torch-2.3.0+cu121-cp39
,下载Linux版
即可。
相信你也看出来了,规则就是<软件>-<版本>+cu<cuda版本>-cp<python版本>
,下载完之后类似这样:
下载完成后,复制到WSL
系统下,如图:
安装
进入WSL
系统对应目录下,进入环境安装好这三个包:
# 进入环境
conda activate <你的环境>
# 安装三个包
pip install torch-2.2.0+cu121-cp39-cp39-linux_x86_64.whl
pip install ...(这是省略号,别当成命令了)
验证
验证是否安装成功
# 进入 python
python
# 验证
import torch
torch.cuda.is_available()
如图,为True
代表成功
结语
至此WSL2
环境已配置成功,有问题欢迎在评论区探讨。
参考文档
感谢:
- windows11 安装WSL2全流程
- WSL2 的开发环境配置 (基础配置, 网络代理, CUDA, Python, Fortran, Latex, 服务器配置)
- 如何用conda安装PyTorch(windows、GPU)最全安装教程
- Ubuntu系统下的gcc升降版本 保姆级教程
- 【AI】搭建Windows Linux子系统(WSL2)CUDA环境
本文标签: 运行环境
版权声明:本文标题:windows11 搭建 WSL2 运行环境(2024) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1735098072h1701656.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论