尽管果子老师的SC00提供了一套Windows下的Python环境解决方案,但受限于操作系统,始终有一些工具在Windows系统下表现不好,可能需要用到Linux环境。但是并不是所有人都有服务器,可能大部分人都只有一台比较不错性能的Windows台式机。当然,我们可以在这个机器再装一个Linux系统,但是切换系统总是麻烦的,最好还是直接能够在Windows下调用Linux环境。
好在,在Windows10之后出现了WSL(也就是Windows下Linux子系统),并且随着微软的迭代,WSL目前的表现已经比较不错的,问题也比较少了,同时也支持调用电脑上的GPU,就能拿来做深度学习炼丹了,因此这篇推文就是介绍下,我是如何配置我的分析环境。
安装WSL,提供Linux环境 如果你发现后续的命令无法运行或者说软件商城中找不到,这可能意味着你的操作系统不符合要求。WSL安装要求 Windows 10 version 2004(Build 19041 )及以上,或者是Windows11.
以管理员身份(也就是右击命令提示符)打开Windows下的CMD或PowerShell(后续,我们统一称之为终端 )
然后终端中,执行如下命令
wsl --install中间可能 会出现几次弹窗,需要用户进行确定,如下是命令运行时的界面。
或许?,你也可以通过Microsoft Store 依序下载Windows Subsystem for Linux 和 Ubuntu(命令行的等价操作)。
最后安装完成后,需要你重启一下系统。
重启之后,会自动出现终端,让你输入用户名和密码,该用户还有sudo权限。
如果你没有出现,或者自己手滑了,把它关闭了,这也问题不大,这意味着后续启动将以root用户启动。
PS:启动wsl的方式很简单,就是在终端里输入wsl并回车,或者在应用里搜索ubuntu
如果你觉得权限太大,还是希望以普通用户的方式登录。我们可以在root下用adduser 增加一个用户【WSL环境内】
然后将刚才新建的用户添加到sudo组中,例如xzg
usermod -a -G sudo xzg最后在终端增设置我们刚才的用户为默认启动用户【直接打开的终端环境】
ubuntu config --default-user xzg后续启动wsl 的时候就不再是root,而是新建的用户,并且该用户也能使用sudo。
配置WSL环境 可选:系统代理 由于很多软件都需要从GitHub上下载,因此需要先为Linux系统配置一个系统代理。
先确定下自己的WSL版本
wsl -l -v# 输出结果如下 NAME STATE VERSION * Ubuntu Running 2我的是WSL2,它是基于Hyper-V运行,因此与Windows系统在网络上是两台独立的机器。需要让WSL代理指向Windows的IP
# 这部分代码可以放在.bashrc中,启动wsl时自动配置环境 host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " " )export ALL_PROXY="http://$host_ip :7890" 如果是WSL1,那么就只需要用下面这个代码
host_ip=127.0.0.1export ALL_PROXY="http://$host_ip :7890" 之后,在Windows上打开Allow LAN,也就是允许本地区域网的访问。
这样子后续数据下载走的都是代理。
可选:oh-my-zsh 之后,我们还需要简单的配置一个oh-my-zsh
# 安装zsh sudo apt install zsh# 安装oh-my-zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) " 需要注意,我们后续安装conda之后,oh-my-zsh是没有conda配置的,因此我们还需要在bash环境中初始化下zsh相关的配置
conda init zsh另外,配置在.bashrc里的一些内容,也应该需要自己手动加到.zshrc文件中
可选:NVIDIA驱动 因为我的电脑需要做深度学习相关的分析,所以需要配置深度学习的分析环境。
配置命令参考自:https://developer.nvidia.com/cuda-downloads [1]
只需要在WSL的Ubuntu中运行如下命令行
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600# 2.6G的数据下载 wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update sudo apt-get -y install cuda之后,只要在wsl的命令行中输入nvidia-smi 有输出就算成功。
nvidia-smi# 我的输出如下 Wed Jun 21 23:26:37 2023 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.85.05 Driver Version: 528.24 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA GeForce ... On | 00000000:01:00.0 On | Off | | 0% 32C P8 13W / 450W | 2884MiB / 24564MiB | 1% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 32 G /Xwayland N/A | +-----------------------------------------------------------------------------+如果系统上安装了pytorch,可以检查下,是否能够调用
import torch torch.cuda.is_available()# True 表示能够盗用 必选:安装conda 我们使用conda管理不同的环境,避免不同软件的依赖间冲突,导致环境崩溃。
打开你的wsl,我们下载mambaforge,使用mamba作为包管理器,并默认增加conda-forge源
# 下载mambaforge(需要不错的网络环境) curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname) -$(uname -m) .sh" # 安装mamba bash Mambaforge-$(uname)-$(uname -m).sh# 安装时会有一些的选项,注意选择 之后,就可以用mamba隔离不同的环境。例如,我们需要安装一个pytorch环境(带GPU)
mamba create -n pytorch2.0.1 pytorch=2.0.1 torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y# 大约要下载3.1GB 需要注意的是,mamba与镜像的兼容性不是特别好,因此不推荐使用mamba的时候修改镜像,而是使用官方源。
安装vscode VScode从微软官方站点(https://code.visualstudio.com/ [2] )下载安装
配置插件 未安装插件的VSCode只是一款普通的编辑器,为了能让它满足我们后续分析数据的需求,我们需要为其配置一些插件。
我们需要先配置“Remote Development”,有了它,我们才能够连接到WSL系统。安装方式如下(其他插件也类似)
之后用快捷键shift + ctrl +p 调出,然后输入wsl,我们连接到WSL。
需要等待一会的后台初始化
VSCode实现Jupyter Jupyter 是一个开源的数据科学和机器学习工具,支持多种编程语言和平台。它允许用户在单个交互式笔记本中创建和共享文档,并且支持实时的代码编辑和运行。此外,Jupyter 还提供了一系列的库和扩展,可以用来完成各种数据分析、机器学习和科学计算任务。
通过VSCode中上安装一些插件,也可以通过终端访问 Jupyter Notebook
Python: 使得VSCode能选择不同的Python内核 Jupyter: 在VSCode提供类Jupyter的界面 需要注意的是WSL系统下的插件和Windows下插件并不互通,要单独安装。
之后新建一个以.ipynb结尾的文件,就可以切换不同的Python内核
第一次运行代码时,可能会弹出如下提示,选择“安装”即可。
后续就跟网页版的Jupyter Notebook体验一致,你可以在其中画图,处理数据。
那么以上,我们就算实现Windows系统下配置WSL,并使用VSCode作为我们的分析平台,用于处理数据
推荐阅读:
WSL的安装:https://learn.microsoft.com/en-us/windows/wsl/install [3] 用户配置:https://aka.ms/wslusers [4] WSL的系统配置:https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-vscode [5] 当然受限于个人能力本文写的未必全面,欢迎大家在留言区讨论。或者咱们群里细聊 参考资料 [1] https://developer.nvidia.com/cuda-downloads: https://developer.nvidia.com/cuda-downloads
[2] https://code.visualstudio.com/: https://code.visualstudio.com/
[3] https://learn.microsoft.com/en-us/windows/wsl/install: https://learn.microsoft.com/en-us/windows/wsl/install
[4] https://aka.ms/wslusers: https://aka.ms/wslusers
[5] https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-vscode: https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-vscode