在Windows11中安装WSL2(Ubuntu20.04)并配置Anaconda环境

news2024/10/3 4:40:06

在Windows11中安装WSL2(Ubuntu20.04)并配置Anaconda环境

文章目录

    • 在Windows11中安装WSL2(Ubuntu20.04)并配置Anaconda环境
      • 说在前面
      • 1. 检查开启CPU虚拟化和虚拟机平台
      • 2. 安装Ubuntu20.04
      • 3. Vscode连接WSL2(Ubuntu20.04)
      • 4. Anaconda开发环境的搭建
      • 5. Vscode 访问 notebook
      • 结尾

说在前面

  • 本文主要参考了B站上的教程https://www.bilibili.com/read/cv16825907/,适合在win10/win11上安装Linux子系统,并在其上搭建Anaconda环境,用于深度学习的训练。

1. 检查开启CPU虚拟化和虚拟机平台

  • 打开任务管理器,点击性能,查看CPU虚拟化的状态,默认为禁用(我这里已经开启了),需要进Bios开启:

    1. 开机按F12或者DEL进入Bios(不同主板可能不一样,请自行查询)
    2. 点击Advanced Mode (F7)进入高级选项
    3. 点击Advanced,找到并点击 CPU Configuration
    4. 下拉菜单找到Intel Virtualization Technology,在其子菜单下把选项改成Enabled
    5. 按F10保存并推出,CPU虚拟化开启成功。
* 开启虚拟化之后,在左下角搜索栏中搜索`启用或关闭Windows功能`,往下翻选择`适用于Linux的Windows子系统`和`虚拟机平台`,单击确定,等待安装完成后重启。

2. 安装Ubuntu20.04

  • 打开微软商店,搜索Linux,安装下面两个应用,本文选择安装Ubuntu20.04。

  • 打开Ubuntu20.04,进行初次安装和用户设置,正常会出现一个窗口,设置用户名和密码,这里自行填写,设置完成之后就会登录Ubuntu。

  • 假如没有填写用户名直接关闭了,再次打开发现默认进的是root用户,此时需要手动创建新用户sudo adduser <username>,然后输入密码就可以了。

  • 如果你之前在微软商店中下载了windows terminal,在windows terminal中可以找到刚刚安装的Ubuntu20.04.在windows terminal中可以配置Ubuntu终端,方便之后打开。

  • 然后需要检查wsl的版本,需要wsl2而不是wsl,此时打开cmd终端,输入以下命令查看安装的Linux发行版列表。

  • 如果version为2,说明已经安装为wsl2版本,如果为1,则继续输入以下命令:

    wsl --set-version Ubuntu-20.04 2 #将Ubuntu-20.04替换为你所下载安装的Linux分发版名称

  • 至此WSL2 Ubuntu20.04的安装已经完成。

  • Windows下的Ubuntu安装位置和文件夹可以直接从此电脑->Linux下找到,Ubuntu-20.04文件夹包含所有Ubuntu的文件,之后安装环境也是安装在这个文件夹。

3. Vscode连接WSL2(Ubuntu20.04)

  • 安装WSL插件,在扩展里面搜索WSL,选择安装即可。

  • 安装完毕后在左下角看到一个按钮(一个>和一个<组成),点击在中间选择connect to WSL,然后Vscode会弹出一个新窗口,左下角显示WSL子系统名称,如:WSL:Ubuntu-20.04

  • 点击左侧文件夹图标,资源管理器,打开文件夹,这里的文件夹就是前面所讲的C盘下的Ubuntu文件夹,这里我将home/<用户名>设为根目录,做为工作区,比较方便修改根目录的文件。建议大家和笔者保持一致。

  • 在vscode中打开终端(Ctrl+`),会自动登录Linux子系统,接下来就可以配置开发环境了。

4. Anaconda开发环境的搭建

  • 换源,修改Linux apt下载地址,以加快各种Linux下载速度,避免下载安装失败。在终端中输入并执行(第一次sudo需要输入用户密码)

    sudo chmod 777 /etc/apt/sources.list # 提权,方便直接使用vscode编辑文件

  • 然后在左侧文件目录中找到并打开/etc/apt/source.list,将里面的文本替换为

    # 默认注释了源码仓库,如有需要可自行取消注释
    deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
    # deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
    
    deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
    # deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
    
    deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    # deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    
    deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    # deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    
    # 预发布软件源,不建议启用
    # deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
    # deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
    
  • Ctrl+S保存即可。

  • 然后打开新的终端(Ctrl+Shift+`),在终端中输入sudo apt update进行更新,等待更新完成。

    sudo apt update	# apt更新
    
  • 下载anaconda安装包,这里可以登录https://repo.anaconda.com/archive/网站查找要下载的版本,选择Linux-x86_64.sh结尾的。

    wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh # 下载anaconda安装包至 /tmp 目录下
    
  • 安装Anaconda3

    bash /tmp/Anaconda3-2022.05-Linux-x86_64.sh	# 安装anaconda
    
  • 安装过程一路输入回车+yes,注意:安装的最后一步时自动执行conda init,等待安装时,可以在扩展中搜索python、jupyter插件,将其安装到wsl中。
    在这里插入图片描述

  • 安装好之后,重新打开一个终端,前面会自动进入base环境,证明安装成功。

    在这里插入图片描述

  • conda、pip换源,加快各种依赖包的下载安装速度

    conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main # 添加conda下载源,目的是它自动生成的一个配置文件
    
  • 执行完之后刷新左侧的资源管理器,可以在用户文件夹/home/<用户名>/下找到.condarc文件,替换成以下内容保存即可。

    channels:
      - defaults
    show_channel_urls: true
    default_channels:
      - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
      - https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
      - https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
    custom_channels:
      conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud
      msys2: https://mirrors.bfsu.edu.cn/anaconda/cloud
      bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud
      menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud
      pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
      pytorch-lts: https://mirrors.bfsu.edu.cn/anaconda/cloud
      simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud
    

    在这里插入图片描述

  • 更换pip下载源:终端中执行命令

    pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple # 修改pip下载源
    
  • 接下来,我们需要创建一个虚拟环境,我就结合《动手学深度学习-pytorch版》来创建。

    conda create -n d2l python=3.9 -y anaconda
    # 以下不用复制
    # pyspark 所创建的虚拟环境的名称,可自定义
    # python=3.8 指定所创建的环境的python版本,可自定义
    # ananconda 继承anaconda根环境中的所有依赖包
    ## 会让安装速度变得很慢,可以删去后再自行用pip安装需要的依赖
    ## 比如pip install pandas、 pip install jupyter
    
  • 安装完之后可以使用如下命令激活d2l环境。发现前面base 变成了d2l

    conda activate d2l
    
  • 安装Pytorch,对应版本下载命令在官网中查找https://pytorch.org/get-started/previous-versions/,这里博主下载的是 CUDA11.6 版本,Pytorch=1.12.1,大家可以根据自己显卡的型号选择合适的CUDA

    # CUDA 11.6
    conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge
    
  • 安装完成之后可以在命令行中输入python,依次输出以下命令,输出如下图所示则表明安装成功。

    import torch
    torch.__version__
    torch.cuda.is_available()
    torch.version.cuda
    
  • 安装d2l包,以方便调取《动手学深度学习》中常用的函数和类。

    pip install d2l
    
  • 下载D2L Notebook, 可以按照以下方式进行下载

    mkdir d2l-notebook && cd d2l-notebook
    curl https://zh-v2.d2l.ai/d2l-zh-2.0.0.zip -o d2l-zh.zip
    unzip d2l-zh.zip && rm d2l-zh.zip
    cd pytorch
    
  • 此时我们输入jupyter notebook终端会返回一大串信息,其中复制链接http://localhost:8888.......到浏览器,即可打开jupyter notebook.

    在这里插入图片描述


  • 至此,所有环境已经安装完成。

5. Vscode 访问 notebook

  • 上节最后使用的jupyter notebook命令比较 麻烦,这里推荐直接使用Vscode直接访问notebook,以下是配置方法。

  • 首先要生成一份jupyter notebook配置文件

    jupyter notebook --generate-config	# 生成notebook配置文件
    
  • 在用户文件夹下(/home/<你的用户名>)下找到.jupyter文件夹,打开可以看到一个jupyter_notebook_config.py文件,打开按Ctrl+F搜索,c.NotebookApp.token = '<generated>',删掉引号内的部分,并去掉前面的注释“#”,Ctrl S保存。

    # 修改前:
    # c.NotebookApp.token = '<generated>'
    # 修改后:
    c.NotebookApp.token = ''
    
  • 此时再输入jupyter notebook发现链接后面的token不见了,变得简单http://localhost:8889/(不同电脑端口号可能不一样)。
    在这里插入图片描述

  • 按下Ctrl + Shift + P,输入“重新”,点击重新加载窗口以重载Vscode,再次按下Ctrl + Shift + P,这次输入jupyter,选择Create: New Jupyter Notebook,创建好后,可以在右上角看到“选择内核”按钮,点击选择之前的虚拟环境所对应的python内核。
    在这里插入图片描述

结尾

  • 至此,所有在Win11中安装Ubuntu20.04并配置Anaconda环境的教程全部结束,如果中途有遇到新的问题,欢迎大家在评论区留言OuO。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高效视觉识别的动态感知器

文章目录 Dynamic Perceiver for Efficient Visual Recognition摘要本文方法实验结果 Dynamic Perceiver for Efficient Visual Recognition 摘要 Early exiting已成为提高深度网络推理效率的一种很有前途的方法。通过构建具有多个分类器(出口)的模型&#xff0c;可以在较早的…

佩戴舒适的蓝牙耳机有哪些?公认佩戴舒适性不错的蓝牙耳机推荐

​都2023年了&#xff0c;不会还有人没有一款蓝牙耳机吧&#xff1f;随着蓝牙耳机的增长&#xff0c;越来越多人不知道如何挑选蓝牙耳机了&#xff0c;蓝牙耳机除了音质表现要好之外&#xff0c;还有就是佩戴舒适性不能差&#xff0c;防水性能要有&#xff0c;接下来&#xff0…

WPF 的几种模板概念

WPF中有三大模板ControlTemplate,ItemsPanelTemplate,DataTemplate.其中ControlTemplate和ItemsPanelTemplate是控件模板,DataTemplate是数据模板,他们都派生自FrameworkTemplate抽象类。 看看如下继承图: ControlTemplate <Style TargetType="Button">&…

MiniGPT-4 模型学习与实战

1 前言 MiniGPT-4 是一个冻结的视觉编码器(Q-Former&ViT)与一个冻结的 文本生成大模型&#xff08;Vicuna&#xff0c;江湖人称&#xff1a;小羊驼&#xff09; 进行对齐造出来的。 MiniGPT-4 具有许多类似于 GPT-4 的能力, 图像描述生成、从手写草稿创建网站等MiniGPT-4…

bitbucket 配置 SSH keys

目录 问题 配置方法 生成SSH key 添加SSH key至SSH Agent 添加公钥至Bitbucket 执行Git clone 问题 拉取bitbucket上的代码需要配置SSH key Configure SSH and two-step verification | Bitbucket Cloud | Atlassian Support 以Linux为例&#xff1a; Set up persona…

WebSocket 的介绍及基本使用

websocket 什么是 websocket ? https://websocket.org/ 是一种网络通信协议&#xff0c;和 HTTP 协议 一样。 为什么需要websocket ? 因为 HTTP 协议有一个缺陷&#xff1a;通信只能由客户端发起。 了解 websocket api含义 基于原生的 websocket 完成服务端和客户端的通…

使用指针突破类的private限制

使用指针突破类的private限制 继承的内存模型使用指针再子类中访问父类的私有变量 继承的内存模型 创建派生类对象时只会申请一次内存&#xff0c;派生类对象包含了基类对象的内存空间&#xff0c;this指针相同的。创建派生类对象时&#xff0c;先初始化基类对象&#xff0c;再…

Oracle数据库安全评估工具(DBSAT)

目录&#xff1a; 工具概述&#xff1a;先决条件&#xff1a;一、支持的操作系统及DB版本&#xff1a;1.支持的操作系统2.支持的数据库版本 二、评估工具的前提条件&#xff1a;1.所需安装包及工具2.Collector的先决条件3.Reporter的先决条件4.Discoverer的先决条件 工具下载&a…

23vue3铺垫知识——ES6模块化与异步编程高级用法

文章目录 一、ES6模块化1、回顾:nodejs中如何实现模块化2、前端模块化规范的分类3、什么是ES6模块化规范4、在nodeis中体验ES6模块化5、ES6模块化的基本语法5.1 默认导出与默认导入5.2 按需导出与按需导入5.3直接导入并执行模块中的代码 二、Promise1、回调地狱1.1 如何解决回调…

iptables 限制转发

概述 可以通过设置内核参数来启动或停止内核的转发 sysctl -w net.ipv4.ip_forward1当开启了Linux内核转发 cat /proc/sys/net/ipv4/ip_forward开启内核转发后&#xff0c;当Linux主机收到不属于自己IP的数据包时&#xff0c;将会根据主机上配置的路由表进行转发&#xff0c…

kubernetes的二进制安装

二进制搭建 Kubernetes v1.20 k8s集群master01&#xff1a;192.168.232.37 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02&#xff1a;192.168.232.7 k8s集群node01&#xff1a;192.168.232.47 kubelet kube-proxy docker k8s集群node…

Android jar包的生成与使用

前言 Android中常见的第三方库有&#xff1a; *.so&#xff0c;*.jar&#xff0c;*.aar&#xff0c;今天给大家分享一下jar文件&#xff0c;在Android应用程序开发中&#xff0c;我们需要使用一些Java库&#xff0c;可能这个库是自己封装好的或者第三方的库&#xff0c;我们每…

收入指引令人失望,股票回购不积极,满帮(YMM)面临监管风险

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 收入指引令人失望 上个月末&#xff0c;满帮&#xff08;YMM&#xff09;公布了2023年第一季度的财务业绩&#xff0c;同时还公布了2023年第二季度的管理指引。 满帮预计其2023年第二季度的收入将在19.10亿元至20.10亿元之…

【SwinFusion:通用网络框架 :Swin Transformer】

SwinFusion: Cross-domain Long-range Learning for General Image Fusion via Swin Transformer &#xff08;SwinFusion&#xff1a;基于Swin Transformer的跨域远程学习通用图像融合&#xff09; 提出了一种基于跨域远程学习和Swin Transformer的通用图像融合框架SwinFusi…

粮油质量追溯系统源码,MES生产加工管理系统

粮油生产质量追溯系统&#xff0c;实现一物一码&#xff0c;全程追溯&#xff0c;正向追踪&#xff0c;逆向溯源。 技术架构&#xff1a;spring bootmybatiseasyuimysql 。 粮油生产质量追溯系统实现种植主体、种植基地、生产计划、压榨、精炼、包装、销售、物料管理、检验检测…

AI绘画:Roop插件的使用详解!

roop插件有哪些特性&#xff0c;如果安装&#xff0c;已经在上一篇讲的非常详细了。不知道你们装得怎么样了&#xff1f; 今天&#xff0c;来详细的说一说roop插件的使用。 首先呢启动我们的Stable-Diffusion-WebUI&#xff0c;然后确保插件已经启用&#xff01; 选择好模型&a…

【Spring Boot 初识丨七 丨外部化配置(一)】属性详解

上一篇讲了 Spring Boot 的依赖注入 本篇来讲一讲Spring Boot 外部化配置 Spring Boot 初识&#xff1a; 【Spring Boot 初识丨一】入门实战 【Spring Boot 初识丨二】maven 【Spring Boot 初识丨三】starter 【Spring Boot 初识丨四】主应用类 【Spring Boot 初识丨五】beans …

35岁的社区网格长李宝东,半个月搭建出一套网格化安全管理系统

2020年以来&#xff0c;网格化治理在陕西省榆林市榆阳区驼峰路街道的各个社区广泛应用。为了给社区群众提供高效、快捷的服务&#xff0c;驼峰路街道按照“11N”模式给社区配备服务人员。 网格员们穿梭于各个社区中&#xff0c;或是对平房、小区及商户进行常规巡查&#xff0c…

如何在 Spring Boot 中使用 OAuth2

在 Spring Boot 中使用 OAuth2 OAuth2 是一种授权协议&#xff0c;用于授权第三方应用程序访问受保护的资源。Spring Security 是一个强大的安全框架&#xff0c;支持 OAuth2 协议。在本文中&#xff0c;我们将介绍如何在 Spring Boot 中使用 Spring Security 实现 OAuth2 认证…

数据库性能优化必读,AntDB-M数据库的哈希索引设计

数据库加快访问速度的关键技术之一就是索引&#xff0c;索引的设计及使用方式极大程度上影响了数据库的性能。AntDB-M支持Hash、BTree两种索引类型。本文主要讲解Hash索引的相关设计&#xff0c;并给出一些使用建议。 1. 相关概念 桶 用于定位索引记录的容器&#xff0c;容器中…