WSL2的安装与配置(创建Anaconda虚拟环境、更新软件包、安装PyTorch、VSCode)

1. WSL2 安装

  1. 以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令:

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    
  2. 以管理员身份打开 PowerShell 并运行:

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    
  3. ❗️重新启动计算机(必须)

  4. 下载内核并安装: 适用于 x64 计算机的 WSL2 Linux 内核更新包

  5. 打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本

    wsl --set-default-version 2
    
  6. 打开 Microsoft Store,并下载喜欢的 Linux 分发版。

    • Ubuntu 18.04 LTS
    • Ubuntu 20.04 LTS
    • Ubuntu 22.04 LTS
    • Debian GNU/Linux
    • Fedora Remix for WSL
  7. 安装完成后在 Microsoft Store 打开安装的系统,首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。

  8. 然后,需要为 Linux 分发版创建用户帐户和密码。

  9. 之后在 cmd 或 Powershell 中输入 wsl 即可打开 WSL(直接 Windows + R,输入 wsl 即可运行 WSL2)。

2. 更改 WSL 所在路径

安装完 WSL 后,默认是在 C 盘下的,一般来说系统盘的容量通常来说是有限的,需要更改安装目录。

  1. 查看 WSL 的运行状态:
    wsl -l -v
    
  2. 确保 WSL 处于关闭状态(Stopped),如果是 Running,则需要关闭:
    wsl --shutdown
    
    之后再次查询 WSL 状态
  3. 导出当前的 Linux 系统镜像:
     --export Ubuntu-20.04 f:\image_ubuntu20.04.tar
    
    之后会在 F 盘中有一个大小为 1.2G 的 image_ubuntu20.04.tar 文件
  4. 移除之前注册的 WSL:
    wsl --unregister Ubuntu-20.04
    
  5. 再次输入查看 WSL 的运行状态:
    wsl -l -v
    
    适用于 Linux 的 Windows 子系统没有已安装的分发版。
    可以通过访问 Microsoft Store 来安装分发版:
    https://aka.ms/wslstore
    
    这样说明我们取消注册成功了
  6. 我们重新注册 WSL:
    wsl --import Ubuntu-20.04 f:\WSL-Ubuntu-20.04 f:\image_ubuntu20.04.tar
    
  7. 重新查看 WSL 状态:
    wsl -l -v
    
    NAME            STATE           VERSION
    * Ubuntu-20.04    Stopped         2
    
    此时,我们的 WSL 就已经移动完成了!

注意

  1. 移动完成后不需要重新设置密码了
  2. image_ubuntu20.04.tar 这个文件可以删除掉了
  3. WSL-Ubuntu-20.04/ 这个文件夹就是 WSL2 的系统盘,不要删除!

3. WSL2 首次配置

3.1 更新软件包

安装完 WSL2 之后,我们就可以理解为它就是一个全新的系统,所以我们首先需要更新软件包:

sudo apt update

3.2 安装 Anaconda

  1. 下载安装包

    cd
    wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
    
  2. 安装

    sh Anaconda3-2023.09-0-Linux-x86_64.sh
    
  3. 打开环境变量

    cd
    notepad.exe ~/.bashrc
    
  4. 设置环境变量

    # 添加 Anaconda 环境变量
    export PATH="/home/WSL用户名/anaconda3/bin:$PATH"
    
  5. 设置快捷键

    # 设置快捷键(可选)
    alias act='conda activate'
    alias deact='conda deactivate'
    
  6. 更新环境变量

    source ~/.bashrc
    
  7. 此时在 bash 中输入:

    conda --version
    

    得到下面的结果:

    conda 23.7.4
    

    此时,Anaconda 就已经安装好了!

Tips:

  1. 嫌弃 wget 下载慢的话🤪,可以直接在 Windows 上下载 Anaconda,之后 cd 到下载目录,安装即可🤗
  2. 安装 Anaconda 时,协议太长了可以按 q 跳过(反正你也不看🤭)
  3. Anaconda 安装可能会很慢,耐心一点🫡
  4. 在执行 step 3 时,如果说没有找到 ~/.bashrc,请直接 cdroot 后再执行
  5. 在执行 step 4 时,/home/WSL用户名/ 就是你 Anaconda 安装的位置。比如我直接安装在了 root 下,所以就是 export PATH="/root/anaconda3/bin:$PATH"

3.3 创建 Anaconda 虚拟环境

因为 WSL2 是一个新系统,所以我们需要重新创建环境。

  1. 创建环境

    conda create -n 虚拟环境名称 python=3.8
    
    Downloading and Extracting PackagesPreparing transaction: done
    Verifying transaction: done
    Executing transaction: done
    #
    # To activate this environment, use
    #
    #     $ conda activate learning
    #
    # To deactivate an active environment, use
    #
    #     $ conda deactivate
    

    此时,虚拟环境安装完毕

  2. 初始化 conda 环境

    conda init
    

    之后退出这个 bash,重新打开一个

  3. 激活虚拟环境

    act 虚拟环境名称
    
  4. 安装必要的库

    pip install 库的名称
    

4. 安装 PyTorch

  1. 先查看 CUDA 版本:

    nvidia-smi
    
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 510.60.02    Driver Version: 512.15       CUDA Version: 11.6     |
    |-------------------------------+----------------------+----------------------+
    | 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 |                  N/A |
    |  0%   35C    P8    13W / 240W |    719MiB /  8192MiB |      5%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+   
    
  2. 在 PyTorch 官网 上找到对应的安装命令:

    pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
    
    Successfully installed certifi-2023.7.22 charset-normalizer-3.3.0 idna-3.4 pillow-10.1.0 requests-2.31.0 torch-1.13.1+cu116 torchaudio-0.13.1+cu116 torchvision-0.14.1+cu116 typing-extensions-4.8.0 urllib3-2.0.7
    
  3. 测试 PyTorch 是否可用:

    python
    
    >>> import torch
    >>> dummpy_tensor = torch.ones((1, 2, 3))
    >>> dummpy_tensor.cuda()
    tensor([[[1., 1., 1.],[1., 1., 1.]]], device='cuda:0')
    

    现在,我们的 CUDA 版本的 PyTorch 就可以用了!

4. 使用 VSCode 打开 WSL2

4.1 方式1

直接在我们想要打开的文件夹下,Shift + 右键,选择 在此处打开 Linux shell(L),之后在打开的终端输入 code ./ 即可。或者直接在 WSL2 终端中输出 code ./,之后手动再次选择文件夹也可以。

code ./
Installing VS Code Server for x64 (f1b07bd25dfad64b0167beb15359ae573aecd2cc)
Downloading: 100%
Unpacking: 100%
Unpacked 1608 files and folders to /root/.vscode-server/bin/xxxxxxxxxxxxxxxxxxxxx

这里是提示我们要安装 VSCode,等待安装完毕即可。

4.2 方式2

当我们安装好 WSL2 后,可以在 VSCode 中搜索 WSL 插件,安装完毕后即可在 VSCode 中远程链接 WSL2 了(和 SSH 远程链接服务器差不多)。

5. WSL2 和 Windows 共享 Proxy

  1. 打开 Allow LAN(允许局域网)
  2. 打开环境变量
    cd
    notepad.exe .bashrc
    
  3. 添加语句:
    hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
    export https_proxy="http://${hostip}:7890"
    export http_proxy="http://${hostip}:7890"
    export all_proxy="socks5://${hostip}:7890"
    
    此处需要注意的是,7890 是你设置的端口号,可以在 Proxy 软件中的 port 中设置
  4. 更新环境变量
    source .bashrc
    
  5. 可以通过 ping 命令来进行测试

Note

  1. 如果之后失效了,关闭 Allow LAN(允许局域网) 再打开就可以了。

知识来源

  1. 旧版 WSL 的手动安装步骤
  2. WSL2 修改安装目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/165936.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp:使用subNVue原生子窗体在map上层添加自定义组件

我们想要在地图上层添加自定义组件&#xff0c;比如一个数据提示框&#xff0c;点一下会展开&#xff0c;再点一下收起&#xff0c;在h5段显示正常&#xff0c;但是到app端真机测试发现组件显示不出来&#xff0c;这是因为map是内置原生组件&#xff0c;层级最高&#xff0c;自…

vscode摸鱼插件开发

不知道大家在写代码的时候&#xff0c;摸不摸鱼&#xff0c;是不是时不时得打开一下微博&#xff0c;看看今天发生了什么大事&#xff0c;又有谁塌房&#xff0c;而你没有及时赶上。 为此&#xff0c;我决定开发一个vscode插件&#xff0c;来查看微博热搜 插件名称&#xff1…

【C++】类和对象(中)

类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中并不是什么都没有&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器会生成的成员函数称为默…

面试官:说说 HTTP 常见的请求头有哪些?

一、是什么 HTTP头字段&#xff08;HTTP header fields&#xff09;,是指在超文本传输协议&#xff08;HTTP&#xff09;的请求和响应消息中的消息头部分 它们定义了一个超文本传输协议事务中的操作参数 HTTP头部字段可以自己根据需要定义&#xff0c;因此可能在 Web 服务器…

使用 类加载器 或者 类对象 读取文件

相对路径&#xff1a;项目 的 根目录 开始查找。&#xff08; 但是在我们真正开发的时候&#xff0c;我们读到的更多的文件并不是直接放在我们项目里面这个文件夹里面&#xff0c;而是放在我们模块里面 &#xff09;同理可得&#xff0c;我们直接创建 文件 b.txt 会在项目的根目…

打造自己的前端组件库(奶妈版,超详细)

打造自己的前端组件库 demo是开源的&#xff0c;自己上npm 或者 github 上都能搜到 新建vue项目(sass js vue2) vue create yt-ui 修改文件目录(如下) 修改&#xff1a; 1.src 更名 examples; 2. src/components移动到项目最外层&#xff1b;3.vue.config.js更改入口文件 /…

记一次Clickhouse 复制表同步延迟排查

现象 数据从集群中一个节点写入之后&#xff0c;其他两个节点无法及时查询到数据&#xff0c;等了几分钟。因为我们ck集群是读写分离架构&#xff0c;也就是一个节点写数据&#xff0c;其他节点供读取。 排查思路 从业务得知&#xff0c;数据更新时间点为&#xff1a;11:30。…

gRPC之gRPC转换HTTP

1、gRPC转换HTTP 我们通常把RPC用作内部通信&#xff0c;而使用Restful Api进行外部通信。为了避免写两套应用&#xff0c;我们使用grpc- gateway 把gRPC转成HTTP。服务接收到HTTP请求后&#xff0c;grpc-gateway把它转成gRPC进行处理&#xff0c;然后以JSON 形式返回数据。…

Python之爬虫

目录 HTTP请求HTTP响应获得页面响应伪装用户访问打包数据爬取豆瓣top250 HTTP请求 HTTP&#xff1a;HypertextTransferProtcol 超文本传输协议 1、请求行 POST/user/info?new_usertrue HTTP/1.1#资源了路径user/info 查询参数new_usertrue 协议版本HTTP/1.1 2、请求头 Ho…

云安全(1)--初识容器逃逸之特权容器逃逸

文章目录 前言privileged,特权容器逃逸环境配置实际利用实际环境利用计划任务/var/spool/cron/crontabs/ 适用于ubuntu debain/var/spool/cron 适用于centos ld.so.preloadssh 前言 在10.15号的上海中华武数杯的渗透赛里做到了一个k8s的题目&#xff0c;这应该是我第一次在比赛…

MapperStruct实现类为空

​ 问题描述&#xff1a; MapperStruct生成的实现了为空 按照在MapperStruct官网Installation – MapStruct中的方法配置后&#xff0c;生成的实现了是空的&#xff0c;如下&#xff1a; Overridepublic DeployHistory toEntity(DeployHistoryDto arg0) {if ( arg0 null ) …

Java利用反射和读取xml实现迷你容器

由于需要框架能实现多态&#xff0c;达到控制反转解耦。所以容器还是需要的&#xff0c;容器的存在可以简化对象获取工作&#xff0c;但是容器也不是万能的。合理使用即可&#xff0c;Spring对我来说太庞大了&#xff0c;用不着&#xff0c;为此给框架写一个迷你版容器。 容器…

C# Onnx Yolov8 Detect 指纹检测

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace Onnx…

「2021年TYWZ普及模拟题」多边形 待定题解

文章目录 题目描述输入格式输出格式样例样例输入 1样例输出 1样例输入 2样例输出 2 数据范围与提示前置知识思路与部分实现完整代码文章小结 题目描述 一个凸多边形具有非常多优秀的性质&#xff0c;它的任意内角小于或等于 18 0 。 180^。 180。 。 小 F 将 n n n 条边交给…

自然语言处理基础

自然语言 自然语言处理是人工智能能够通过图灵测试的重要工具。 自然语言处理基本的任务和应用 词性标注&#xff1a;把每句话的各个单词的词性标注出来&#xff0c;例如&#xff1a;形容词、名词、动词 named entity recognition命名实体的识别&#xff1a;识别哪些单词是真…

C1N短网址 - 是如何做到行业领先的

今天从技术角度来聊下短网址的一些事情&#xff0c;市面上的短网址发展基本上经历了几个阶段。 短网址发展的几个阶段&#xff1a; 第一阶段&#xff1a;网址缩短&#xff0c;很纯粹的功能&#xff0c;各个大小公司都在做&#xff0c;门槛很低。典型代表&#xff1a;百度短网…

滚珠螺杆应如何存放避免受损

滚珠螺杆是一种高精度的机械零件&#xff0c;保存或使用不当&#xff0c;会直接损坏&#xff0c;影响生产效率&#xff0c;因此我们在使用时需要注意以下事项&#xff1a; 1、避免垂直放置&#xff1a;没有施加预压的螺杆垂直放置时&#xff0c;螺母会因自重而从螺杆轴上脱荐下…

【ArcGIS绘图系列1】在ArcGIS中制作柱状图与饼状图

成图展示 图形出处&#xff1a;J2023-Assessment of agricultural drought based on multi-source remote sensing data in a major grain producing area of Northwest China 实现步骤 第一步 查看数据信息 数据输入到ArcGIS中&#xff1a;包含数据表和shp文件 1、shp文件…

[牛客]计算机网络习题笔记_1020

1、物理层&#xff1a;以太网 调制解调器 电力线通信(PLC) SONET/SDH G.709 光导纤维 同轴电缆 双绞线等。 2、数据链路层&#xff08;网络接口层包括物理层和数据链路层&#xff09;&#xff1a;Wi-Fi(IEEE 802.11) WiMAX(IEEE 802.16) ATM DTM 令牌环 以太网 FDD…