windows11安装wsl2(linux)+VScode+ miniconda+TVM+python环境部署

2023-11-16

预备加速工具:vpn,清华镜像

第一次安装,失败

1. Windows11 D盘安装wls(linux)

参考链接:windows11安装wsl 跳过C盘安装

  1. 开启Windows的wsl与虚拟平台
    在这里插入图片描述

  2. 以管理员身份打开powershell下载ubuntu20.04
    在D盘创建一个文件夹,如Linux;
    Win+X 以管理员身份 打开powershell;
    输入命令行 D: ,直接跳转到D盘;
    再输入命令行 cd Linux,进入子目录;
    输入以下命令行 ,此命令行在cmd 无效,下载需10分钟左右;

Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing

备注:
也可以直接从文件路径直接输入powershell打开
在这里插入图片描述
3. 解压并安装
逐行运行以下命令

Rename-Item .\Ubuntu20.04.appx Ubuntu.zip
Expand-Archive .\Ubuntu.zip -Verbose
cd .\Ubuntu\
.\ubuntu2004.exe

几分钟后,输想要的用户名和密码(用户名要小写)
4. 安装后测试
测试

wsl -l -v

关闭

wsl --shutdown

重新打开cmd,输入wsl,可直接跳转ubuntu系统

2. 安装vscode并连接到WSL2

参考链接:安装vscode并连接到WSL2

  1. 下载vscode
    我的vscode提前安装好了,所以此步跳过。
  2. 安装 wsl扩展插件
    在这里插入图片描述
  3. 远程链接
    点击左下角的绿色 ><,选择New WSL Windows,弹出新的vscode窗口
    在这里插入图片描述
  4. 修改权限
    提权,方便直接使用vscode编辑文件,777仅仅意味着将所有权利授予所有用户
sudo chmod 777 /etc/apt/sources.list	
  1. 添加清华镜像
    网上教程很多

3. wsl 安装miniconda

miniconda 相比于anaconda更为精简。安装较为简单,直接参考别的blog。
参考链接:wsl中安装miniconda

4. wls安装TVM

接下来的安装就比较费事了,按照网上的blog,出现了一系列的问题。

参考blog

WSL环境安装TVM:主要流程和依赖库等参考此blog,但是具体实施细节有差异

4.1 安装依赖库

记得关闭全局vpn

注意,下面的依赖库中没有安装 cmake,因为直接安装版本比较低,后面的安装要求CMake > 3.18

sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential libedit-dev libxml2-dev

备注:以下命令安装后,版本过低

sudo apt install cmake

4.2 从源码安装cmkae

备注: cmake版本过低,卸载

sudo apt autoremove cmake

参考1,重点是流程 Linux 安装 CMake
参考2,重点可以学习cmake原理 ubuntu18.04下–CMake教程
预编译二进制下载过慢,所以采用源码安装,源码安装就是编译时太慢。

  1. 下载源码
    官网下载cmake-3.24.3.tar.gz ,如图红色方框,
    在这里插入图片描述
    备注:sh文件安装,没有尝试过

  2. 解压并配置
    cmd进入到下载的目录

tar -zxvf cmake-3.22.3.tar.gz -C <目标路径>

切换到 CMake 源目录并执行 bootstrap 脚本

cd cmake-3.22.3.tar.gz

配置

./bootstrap --parallel=32 #(可选)后续make时可以并行编译 
./bootstrap --prefix=/usr/local/cmake #添加安装位置
  1. 编译
make -j 6 #6核并行编译
  1. 安装
make install 

可以尝试 make install -j 6

ln -s /usr/local/bin/cmake /usr/bin/cmake 
#软连接 ln [original filename] [link name]
  1. 测试
    更改别名之类的,可以不需要
cmake -version

4.3 从源码安装LLVM

按照此blog中,从pre-build版本安装,后面的cmake .. 报错

在这里插入图片描述
寻找原因:
(1) 失败1:修改(USE_LLVM OFF) 的位置应该是cmake/config.cmake,而不是build/config.cmake,不报错了,直接编译通过,但是在make -j4时出错。

(2) 成功:原因(1)是错误的,仔细查看红字上方的报错,发现是没有lib,动态链接库。因此倒退回上一步安装此链接步骤1,下载的pre-build可能缺少我所需要的lib库
在这里插入图片描述
因此,采用源码编译
参考1:Ubuntu 18.04 安装Clang/LLVM 11

  1. 下载源码
    到官网直接下载 LLVM各版本的源码、预编译二进制
    或者在wsl中输入
    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/llvm-11.0.0.src.tar.xz.sig
  2. 解压并进入
tar xvf llvm-11.0.0.src.tar.xz -C <目标目录>
# 进入解压后的目录
cd llvm-11.0.0.src

创建一个新的目录,用于存放 Clang/LLVM 编译的结果

mkdir build
cd build
  1. 编译并安装
    使用 cmake 编译 Clang/LLVM
cmake ..
make -j 6

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
swap空间不足
https://www.linuxidc.com/Linux/2010-09/28915.htm
https://blog.csdn.net/vincentuva/article/details/83111447

还是有问题
在这里插入图片描述

make install -j 6

vim
在这里插入图片描述

在这里插入图片描述

4.4 安装TVM

  1. 获取源码
    加快git 下载速度技巧:
    打开VPN(clash for windows),选择常规,点击Port的那个端口号,点击"CMD",此时已复制代理地址,
    在这里插入图片描述
    打开cmd,输入
set http_proxy=http://我的IP:端口号 & set https_proxy=http://我的IP:端口号

下载TVM

git clone --recursive https://github.com/apache/tvm tvm
  1. 源码编译
    解压到某个特定位置,

切换目录

cd tvm
mkdir build

复制

cp cmake/config.cmake build
  1. 修改 build/config.cmake
    参考 blog
    (1)修改 build/config.cmake 以添加 set(USE_LLVM /path/to/your/llvm/bin/llvm-config),该操作主要是绑定LLVM 后端 ,主要是将llvm-config 文件的绝对路径,添加至 USE_LLVM 属性。

(2)PyTorch 的用户建议设置 set(USE_LLVM “/path/to/llvm-config --link-static”) 和 set(HIDE_PRIVATE_SYMBOLS ON) 以避免 TVM 和 PyTorch 使用的不同版本的 LLVM 之间潜在的符号冲突。

cd build
cmake ..
make -j4
make install 
```## 5. 安装ffmpeg
主要流程参考 [ffmpeg安装 ](https://blog.csdn.net/lucky_mmg/article/details/123874216)
添加路径不可以有空格
```bash
export PATH=$PATH:/mnt/~/ffmpeg/bin     # (定位到FFmpeg文件夹即可,如果不知道FFmpeg文件夹所在位置,可以使用pwd命令查看)

第二次安装 失败

主要参考 服务器(CentOS7)上安装 TVM0.9 + python3.7

1. 查看环境依赖库、下载源码

打开wsl,创建 python=3.8.2

conda create -n tvmBuild python=3.8.2

查看目前版本

cmake /3.24.3
gcc /9.4.0
Ubuntu/20.04
llvm 未安装

2,安装llvm

centos7编译安装llvm
wget 下载过慢,直接用链接在浏览器下载

mkdir llvm-8.0.0
cd llvm-8.0.0
wget http://releases.llvm.org/8.0.0/llvm-8.0.0.src.tar.xz
wget http://releases.llvm.org/8.0.0/cfe-8.0.0.src.tar.xz
wget http://releases.llvm.org/8.0.0/clang-tools-extra-8.0.0.src.tar.xz
wget http://releases.llvm.org/8.0.0/compiler-rt-8.0.0.src.tar.xz

解压

mv cfe-8.0.0.src clang
mv clang/ llvm-8.0.0.src/tools/

mv clang-tools-extra-8.0.0.src extra
mv extra/ llvm-8.0.0.src/tools/clang/

mv compiler-rt-8.0.0.src compiler-rt
mv compiler-rt llvm-8.0.0.src/projects/

配置并编译安装

mkdir build-8.0.0
cd build-8.0.0

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On ../llvm-8.0.0.src/

make -j 4

出现警告

在这里插入图片描述

最终报错 make: *** [Makefile:152:all] Error 2

https://www.bilibili.com/read/cv13148974/ 出处:bilibili
参考 https://blog.csdn.net/hans774882968/article/details/127043163
降低g++,gcc 版本
参考 https://www.bilibili.com/read/cv13148974/

尝试直接

 sudo apt install llvm

在这里插入图片描述
退回到cmake … 重新编译

在这里插入图片描述

build/config.cmake 352 行
libbacktrace

第三次安装 成功

LLVM下载
使用预编译安装

sudo tar xvf clang+llvm-11.0.0-rc5-x86_64-linux-gnu-ubuntu-20.04.tar.xz
mv clang+llvm-11.0.0-rc5-x86_64-linux-gnu-ubuntu-20.04 llvm-11
export PATH=$PATH:/mnt/d/Linux/Ubuntu/data/packages/llvm-11/bin"

linux 配置环境变量,直接用export是临时设置,重启后无法识别
改用vim

vim ~/.bashrc 
export PATH=/mnt/d/Linux/Ubuntu/data/packages/llvm-11/bin:$PATH
source ~/.bashrc 

添加好环境变量后,which 查看/llvm-config

/mnt/d/Linux/Ubuntu/data/packages/llvm-11/bin/llvm-config

vim 编辑

deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main

shell执行

sudo apt update

sudo apt install clang-11

编译TVM
出现以下问题
在这里插入图片描述
7
参考此篇blog

重点!! 不要用cmd git clone,要进入wsl直接linux 下载预编译版本。!!
重点!! 不要用cmd git clone,要进入wsl直接linux 下载预编译版本。!!
重点!! 不要用cmd git clone,要进入wsl直接linux 下载预编译版本。!!

安装tvm,用vim .bashrc配置环境没有作用,直接用以下命令,从build目录退出到tvm目录

cd ..
cd python
#确认python子环境是否激活为tvmBuild,不要再base当中使用
conda activate tvmBuild
python setup.py install --user

安装依赖包

conda install  numpy decorator attrs  # 必须安装
conda install tornado psutil xgboost cloudpickle #选择安装

测试环境

python
import tvm
from tvm import relay

打开vscode测试,成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows11安装wsl2(linux)+VScode+ miniconda+TVM+python环境部署 的相关文章

随机推荐

  • Android 倒计时器示例

    在这个 android 倒数计时器示例中 我们将实现一个计时器对象来显示进度进度条 我们将在本教程中构建的应用程序是测验应用程序中的一个有用组件 其中以图形方式显示完成该级别的剩余时间 以增强用户体验 Android 倒计时器 Androi
  • 如何在 Ubuntu 18.04 上设置私有 Docker 注册表

    作者选择了阿帕奇软件基金会接受捐赠作为为捐款而写程序 介绍 Docker 注册表是一个管理存储和交付 Docker 容器镜像的应用程序 注册表集中容器映像并减少开发人员的构建时间 Docker 镜像通过虚拟化保证相同的运行时环境 但构建镜像
  • C 编程中的 fgets() 和 gets()

    介绍 我们都熟悉scanf 功能 它是适用于获取基本用户输入的主要功能 虽然scanf 在接受诸如以下输入时效果很好整数 字符 浮点数等等 在获取包含空格的字符串输入时 它肯定会落后 让我们看一个例子 include
  • Spring Bean 范围

    Spring Bean Scopes 允许我们更精细地控制 bean 实例的创建 有时我们希望将 bean 实例创建为单例 但在其他一些情况下 我们可能希望在每次请求时或在会话中创建一次 Spring Bean 范围 有五种类型春豆 sco
  • 如何在 Ubuntu 20.04 上安装和使用 Docker

    介绍 Docker是一个应用程序 可简化管理应用程序进程的过程容器 容器允许您在资源隔离的进程中运行应用程序 它们与虚拟机类似 但容器更便携 更资源友好 并且更依赖于主机操作系统 有关 Docker 容器的不同组件的详细介绍 请查看Dock
  • 针对Spring/Gradle启动失败的一些通用解决方案

    文章目录 0 前言 1 更改Gradle JVM的Java JDK 1 1 执行JUnit测试时 Gradle报错 0 前言 当你对Spring Gradle启动失败的错误信息一筹莫展时 不妨试试以下这些通用的解决方案 1 更改Gradle
  • SpringBoot在普通类获取Service或者DAO

    1手动创建工具类 package com lhw locktest util import org springframework beans BeansException import org springframework contex
  • 编程每日一题_C程序设计_零钱兑换

    描述 来源 MOOC C语言程序设计 浙江大学 翁老师 有改编 给定人民币整元数值 如1元 5元 10元 100元 将该币值的钱全部兑换为零钱 一角 两角 五角 且每次兑换每种面值的零钱均出现 请给出兑换方案 输出一种兑换方案 代码1 in
  • 设计模式---抽象工厂(AbstractFactory)模式

    1 名词解释 产品等级 指产品的类型一样 品牌不一样 例如空调是一种产品类型 美的空调与格力空调是不同的品牌 产品族 同一个品牌的不同产品 例如美的的空调 电饭锅 热水器属于同一产品族 这里引用一个图片来具体说明这两个名词解释 来自引用2
  • 超详细!腾讯NLP算法岗面经(已offer)

    作者 ZipZou 整理 NewBeeNLP 面试锦囊之面经分享系列 持续更新中 可以后台回复 面试 加入交流讨论组噢 写在前面 首先来段简单的自我介绍 2021届硕士 硕士期间未有实习经历 本科大三有过一次实习 小公司 可以忽略 本人投递
  • 龙芯2k1000la之固态硬盘重新分区

    当我们想为系统安装一些配置后发现我们想要安装到的磁盘分区满了时我们可以对固态硬盘进行重新分区 如下以up重装系统时 新系统压缩包太大无法在sda1解压为例 当我将 dev sda1挂载到disk文件夹并想要解压新系统时 提示该设备上已经没有
  • idea 注册码 在线生成方式

    已经有前辈搞了一个在线网站了 直接生成即可的 http idea iteblog com
  • python request 爬虫爬取起点中文网小说

    1 网页分析 进入https www qidian com 点击全部 进行翻页 你就会发现一个规律 url https www qidian com all orderId style 1 pageSize 20 siteid 1 pubf
  • Windows下安装GPU版本的PyTorch(防踩坑)

    预言 防踩坑 恭喜你 比较幸运 安装GPU版本的PyTorch找到了此博文 博主最初因操作不利 由于自身轻微强迫症 完美主义强行刷机重装系统两次 再次声明 用于NLP中的GPU加速 不用单独安装VS CUDA cuDNN 请耐心看此博文 两
  • [牛客网]oj输入输出练习

    a b 多组 import java util public class Main public static void main String args Scanner scanner new Scanner System in Arra
  • 创建Google play开发者账号,并验证身份通过

    一 注册前准备 最好准备一台没有怎么用过Google的电脑和 准备一个没有注册过Google的手机号 准备一张信用卡或者借记卡 需要支付 25 支持的类型如下图 这里还需注意 最后账号注册成功还需要验证身份也就是实名认证 那么Google去
  • 在Windows Server上使用IIS部署Python-Flask项目

    1 安装Flask与wfastcgi pip install Flask pip install wfastcgi 1 python安装wfastcgi并激活 2 进入python安装目录下的scripts文件夹然后运行wfastcgi e
  • 15黑马笔记之二叉树的递归遍历求叶子节点数

    15黑马笔记之二叉树的递归遍历求叶子节点数 1 思想 对每一个节点遍历其左右孩子 若都为空 则是叶子节点 递归结束条件 传进的节点不为空 代码基本只是在递归遍历的基础上加了统计叶子数的变量 2 具体代码实现 例子 include
  • nginx 反向代理 ssh连接办公室win电脑

    1 生产密钥免密连接服务器 ssh keygen 复制win电脑上的 ssh id rsa pu到服务器 root ssh 目录下 cat id rsa pub gt gt authorized keys sudo chmod 600 au
  • windows11安装wsl2(linux)+VScode+ miniconda+TVM+python环境部署

    在wsl上运行 TVM demo 环境配置 预备加速工具 vpn 清华镜像 第一次安装 失败 1 Windows11 D盘安装wls linux 2 安装vscode并连接到WSL2 3 wsl 安装miniconda 4 wls安装TVM