当前位置: 首页 > news >正文

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 修改安装目录

相关文章:

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

1. WSL2 安装 以管理员身份打开 PowerShell&#xff08;“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”&#xff09;&#xff0c;然后输入以下命令&#xff1a; dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /a…...

【鸿蒙软件开发】ArkTS常见组件之单选框Radio和切换按钮Toggle

文章目录 前言一、Radio单选框1.1 创建单选框1.2 添加Radio事件1.3 场景示例二、切换按钮Toggle2.1 创建切换按钮2.2 创建有子组件的Toggle2.3 自定义样式selectedColor属性switchPointColor属性 2.4 添加事件2.5 示例代码 总结 前言 Radio是单选框组件&#xff0c;通常用于提…...

今年阿里云双十一服务器优惠价格讨论_看看大家怎么说?

2023阿里云双十一云服务器大概会降到什么区间&#xff1f;阿里云服务器网认为会在当前的优惠价格基础上&#xff0c;降价10%左右&#xff0c;可以在阿里云CLUB中心领券&#xff1a;aliyun.club 云服务器专用满减优惠券。阿里云服务器网从各个渠道了解到大家对今年阿里云双十一服…...

LC-1402. 做菜顺序(记忆化搜索 ==> 动态规划、贪心)

1402. 做菜顺序 困难 一个厨师收集了他 n 道菜的满意程度 satisfaction &#xff0c;这个厨师做出每道菜的时间都是 1 单位时间。 一道菜的 「 like-time 系数 」定义为烹饪这道菜结束的时间&#xff08;包含之前每道菜所花费的时间&#xff09;乘以这道菜的满意程度&#x…...

泰森多边形

泰森多边形 93 泰森多边形又叫沃洛诺伊图&#xff08;Voronoi diagram&#xff09;&#xff0c;得名于Georgy Voronoi&#xff0c;是一组由连接两邻点线段的垂直平分线组成的连续多边形。一个泰森多边形内的任一点到构成该多边形的控制点的距离小于到其他多边形控制点的距离。…...

YOLOV8 进行docker环境配置

修改docker文件 原docekerfile中ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/Arial.Unicode.ttf /root/.config/Ultralytics/下载很慢&#xff0c;可以在外部下载好&#xff0c;放入docker文件夹中&#xff0c;再将源代码改为ADD Arial.ttf…...

sealos一键部署K8S环境(sealos3.0时代教程过时了,目前已经4.0了,请移步使用Sealos一键安装K8S)

1 安装Sealos(4.0版本) sealos部署k8s贼方便&#xff0c;只需要一条init命令即可&#xff0c;3分钟部署完&#xff08;下载安装包的时间不算&#xff09;。 官方教程&#xff1a;https://www.sealyun.com/instructions/1st #主机名&#xff1a; hostnamectl set-hostname mas…...

【C++】stackqueue

适配器是一种设计模式 &#xff0c; 该种模式是将一个类的接口转换成客户希望的另外一个接口 。 虽然 stack 和 queue 中也可以存放元素&#xff0c;但在 STL 中并没有将其划分在容器的行列&#xff0c;而是将其称为 容器适配 器 &#xff0c;这是因为 stack 和队列只是对其他容…...

Hive篇面试题+详解

Hive篇面试题 1.什么是Hive&#xff1f;它的主要功能是什么&#xff1f; Hive是一个基于Hadoop的数据仓库工具&#xff0c;它提供了一个类SQL的查询语言&#xff08;HiveQL&#xff09;来查询和分析存储在Hadoop集群中的大规模数据。Hive的主要功能是将结构化数据映射到Hadoop…...

Mysql批量插入更新如何拆分大事务?

拆分大事务 一、解决方案二、遇到问题之前在运行Mysql任务的时候报错:binlog(1610646347 bytes) write threshold exceeded,原因是Mysql任务提交的是个大事务,超出binlog设定阈值,使得系统自动终止事务 一、解决方案 使用limit分页拆分大事务 CREATE PROCEDURE `split_tran…...

【计算机网络原理】初始网络基础

文章目录 1. 网络发展史1.1 单机时代1.2 网络互连局域网 LAN广域网 WAN 2. 网络通信基础2.1 IP 地址2.2 端口号2.3 协议2.4 五元组2.5 协议分层2.5.1 OSI七层模型2.5.2 TCP/IP五层模型 2.6 封装和分用2.6.1 数据封装(发送方情况)2.6.2 数据分用(接收方情况) 总结 1. 网络发展史…...

【sqlserver】配置管理器打不开

问题描述 无法连接到 WMI 提供程序。您没有权限或者该服务器无法访问。请注意&#xff0c;您只能使用SQL Server 配置管理器来管理 SQL Server 2005 和更高版本的服务 器。无效类[0x80041010] 解决方式: 命令提示符-右键-以管理员身份运行&#xff0c;再把以下代码执行一遍&…...

磁盘清理 | 已经卸载的软件还出现在应用和功能里怎么办?

一句话总结解决方法&#xff1a; 安装Geek Uninstaller,删除卸载残留。 问题描述&#xff1a; 最近磁盘满了&#xff0c;需要删除一些平时不常用的软件&#xff0c;但是发现一个问题。就是已经删除的软件&#xff0c;仍然会出现在“应用与功能”中。并且显示卸载图标为灰色&am…...

C++之异常

目录 一、C语言传统的处理错误的方式 二、C的异常 1、概念 2、关键字 3、基本格式 三、异常的抛出和捕获 1、异常的抛出和匹配原则 2、 在函数调用链中异常栈展开匹配原则 四、异常抛派生类&#xff0c;基类捕获 五、异常的重新抛出 六、异常安全 七、异常的优缺点…...

动态天气预报:Living Weather HD for Mac

Living Weather HD能够为Mac用户提供及时、准确、个性化的天气信息&#xff0c;并提供了丰富的定制选项&#xff0c;使用户能够更加方便地查看天气状况。 具有以下特点&#xff1a; 显示世界各地的准确天气预报和当地时间。自动探测出用户所在的首个地点&#xff0c;并通过搜…...

深度神经网络时与协方差矩阵

平时训练深度神经网络时&#xff0c;什么时候用到了协方差矩阵 在深度神经网络的平时训练过程中&#xff0c;一般情况下不直接使用协方差矩阵。然而&#xff0c;协方差矩阵的概念和相关性的考虑在某些情况下可以对网络的训练和优化起到一定的指导作用。 下面是一些与协方差矩…...

idea中java类属性(字段)链式赋值

很多人看到标题可能会想到 lombok 的 Builder&#xff0c;lombok 在国内用的挺多的&#xff0c;开源的组件中 mybatis-plus 中用到了这个&#xff0c;使用这个有一个问题就是通过对应 get 和 set 方法找不到对应的赋值方法&#xff0c;因为 lombok 使用了 apt 在编译期生成了相…...

vue通知(滚动)

1. li宽度不顾定 <template><div id"app"><div id"box" mouseover"clearLeft" mouseleave"setLeft"><ul :style"{ transform: translateX( left px) }" ref"cmdlist"><li v-for&qu…...

linux安装新版本git2、配置github-ssh。(centos、aws)

一、安装Git 1、yum默认版本git #1.安装git sudo yum install git -y #2.确认Git已经安装成功 git --version如果要安装较新版本&#xff0c;可以安装一个repo &#xff0c;但是我这第一次尝试失败了&#xff0c;执行完提示找不到git2u&#xff0c;ius repo也连不上。而且每次…...

毅速丨3D打印结合拓扑优化 让轻量化制造更容易

制造轻量化对于提高能源利用效率、提高产品性能和减少环境影响&#xff0c;推动制造业的绿色化、高质量发展具有重要的促进作用。 轻量化设计对许多领域都有着重要影响&#xff0c;尤其是那些需要降低能源消耗、提高运输效率或减少对环境影响的领域。如航空航天&#xff0c;轻量…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...