Windows基于WSL搭建Python数据分析环境

news2024/11/16 19:40:36

最近配置了一台较为不错的台式机,记录下自己配置环境的过程。

安装WSL,提供Linux环境

如果你发现后续的命令无法运行或者说软件商城中找不到,这可能意味着你的操作系统不符合要求。WSL安装要求 Windows 10 version 2004(Build 19041 )及以上,或者是Windows11.

以管理员身份(也就是右击命令提示符)打开Windows下的CMD或PowerShell(后续,我们统一称之为终端

然后终端中,执行如下命令

wsl --install

中间可能会出现几次弹窗,需要用户进行确定,如下是命令运行时的界面。

或许?,你也可以通过Microsoft Store依序下载Windows Subsystem for Linux 和 Ubuntu(命令行的等价操作)。

image_JZmsOMk0iJ

最后安装完成后,需要你重启一下系统。

重启之后,会自动出现终端,让你输入用户名和密码,该用户还用sudo权限。

image__lfZbSc_Fw

如果你没有出现,或者自己手滑了,把它关闭了,这也问题不大,这意味着后续启动将以root用户启动。

PS:启动wsl的方式很简单,就是在终端里输入wsl并回车,或者在应用里搜索ubuntu

image_vySieCziap

如果你觉得权限太大,还是希望以普通用户的方式登录。我们可以在root下用adduser 增加一个用户【WSL环境内】

image_HsYiTQ8y_i

然后将刚才新建的用户添加到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.1
export ALL_PROXY="http://$host_ip:7890"

之后,在Windows上打开Allow LAN,也就是允许本地区域网的访问。

image_sSacJUuilI

这样子后续数据下载走的都是代理。

可选: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

image_yV0UklJJNt

只需要在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/)下载安装

image_mH35pSo5-l

配置插件

未安装插件的VSCode只是一款普通的编辑器,为了能让它满足我们后续分析数据的需求,我们需要为其配置一些插件。

我们需要先配置“Remote Development”,有了它,我们才能够连接到WSL系统。安装方式如下(其他插件也类似)

image_VoS35suINB

之后用快捷键shift + ctrl +p 调出,然后输入wsl,我们连接到WSL。

image_VjdKtZP-0C

需要等待一会的后台初始化

image_Iw04LJcB3A

VSCode实现Jupyter

Jupyter 是一个开源的数据科学和机器学习工具,支持多种编程语言和平台。它允许用户在单个交互式笔记本中创建和共享文档,并且支持实时的代码编辑和运行。此外,Jupyter 还提供了一系列的库和扩展,可以用来完成各种数据分析、机器学习和科学计算任务。

通过VSCode中上安装一些插件,也可以通过终端访问 Jupyter Notebook

  • Python: 使得VSCode能选择不同的Python内核
  • Pytlance:类型检查等功能
  • Jupyter: 在VSCode提供类Jupyter的界面

需要注意的是WSL系统下的插件和Windows下插件并不互通,要单独安装。

之后新建一个以.ipynb结尾的文件,就可以切换不同的Python内核

image_t8wThT-sZh

第一次运行代码时,可能会弹出如下提示,选择“安装”即可。

image_RUBxu4j7TX

后续就跟网页版的Jupyter Notebook体验一致,你可以在其中画图,处理数据。

image_ml67PloBt2

那么以上,我们就算实现Windows系统下配置WSL,并使用VSCode作为我们的分析平台,用于处理数据

参考资料:

  • WSL的安装: https://learn.microsoft.com/en-us/windows/wsl/install
  • 用户配置:https://aka.ms/wslusers
  • WSL和VSCode的联动
  • WSL的系统配置:https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-vscode

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

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

相关文章

C++之H数回信

void H数(int 数) {int Lin 数;while (Lin>1){if (!(Lin % 2) || !(Lin % 3) || !(Lin % 5) || !(Lin % 7)){if (!(Lin % 2))Lin / 2;else if (!(Lin % 3))Lin / 3;else if (!(Lin % 5))Lin / 5;else if (!(Lin % 7))Lin / 7;}else return;}cout << 数 << ends…

Proxmox 8.0 “Virtual Environment”发布

导读Proxmox发布新产品Proxmox VE8.0&#xff0c;基于Debian 12.该版本集成了新的Linux内核6.2、QEMU 8.0.2、LXC 5.0.2和OpenZFS 2.1.12&#xff0c;并且还有其他一些新功能和改进。 更新的部分包括更新的Ceph服务器、安装程序ISO增加基于文本的用户界面、整合主机网络桥和VN…

STM32 Proteus UCOSII系统DS1302万年历时钟秒表控制系统-0056

STM32 Proteus UCOSII系统DS1302万年历时钟秒表控制系统-0056 Proteus仿真小实验&#xff1a; STM32 Proteus UCOSII系统DS1302万年历时钟秒表控制系统-0056 功能&#xff1a; 硬件组成&#xff1a;STM32F103R6单片机 LCD1602显示器多个按键DS1302北京时间 1.单片机程序使…

java 分布式事务seata的使用

首先创建一个seata的springboot模块并引入seata的起步依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId> </dependency>模块的目录结构如下 seata.yaml中的内容为&…

vscode高亮插件——highlight-words(高亮代码、高亮变量、突出显示)

文章目录 官方教程高亮文字使用方法配置 演示变量高亮&#xff08;Highlight Toggle Current&#xff09;选择高亮&#xff08;Highlight Selection with Options&#xff09;删除高亮&#xff08;Highlight Remove&#xff09;侧边栏&#xff08;Highlight Toggle Sidebar&…

软件测试用例编写规范文档,模板都给你了我看谁还不会写测试用例

目录 前言 一 概述 1.1目的 1.2使用范围 二 测试用例编写原则 2.1系统性 2.2连贯性 2.3全面性 三 测试用例设计方法 3.1 等价类划分法&#xff1a; 3.2 边界值分析法&#xff1a; 3.3 因果图法&#xff1a; 3.4功能图法 3.5错误推测法 四 测试用例编写规范 4.1…

【ARM】-指令预取中止异常中断处理程序的返回

文章目录 处理流程示例 处理流程 在指令预取时&#xff0c;如果目标地址是非法的&#xff0c;该指令被标记成有问题的指令。这时&#xff0c;流水线上该指令之前的指令继续执行。当执行到该被标记成有问题的指令时&#xff0c;处理器产生指令预取中止异常中断。 当发生指令预取…

解决进入虚拟环境venv后pip路径仍然是在全局路径usr/bin下的问题

问题 解决方法 尝试手动安装pip到你的虚拟环境中。首先&#xff0c;确保在虚拟环境中运行以下命令&#xff1a; python -m ensurepip然后&#xff0c;使用以下命令安装pip到你的虚拟环境中&#xff1a; python -m pip install --upgrade pip

XR-FRAME 开始

目录 新建一个XR组件在页面中使用这个组件添加一个物体来点颜色和灯光有点寡淡&#xff0c;加上图像让场景更丰富&#xff0c;环境数据动起来&#xff0c;加入动画还是不够&#xff0c;放个模型再来点交互组件通信&#xff0c;加上HUD虚拟 x 现实&#xff0c;追加AR能力识别人脸…

ChatGLM6B LORA微调

ChatGLM6B&ChatGLM2-6B微调 目录 ChatGLM6B&ChatGLM2-6B微调 微调硬件需求 3.1. LoRA概述 3.2. LoRA微调ChatGLM步骤 3.2.1. 项目和环境搭建 3.2.2. 数据集处理 3.2.3. 微调 3.2.4. 推理 3.2.5. 完整过程 3.3. LoRA微调ChatGLM步骤-——huggingface PEFT 3.3.1. 项目和…

通过动态地址解决网络数据采集问题

动态地址的作用 说到Python网络爬虫&#xff0c;很多人都会遇到困难。最常见的就是爬取过程中IP地址被屏蔽。虽然大部分都是几个小时内自动解封的&#xff0c;但这对于分秒必争的python网络爬虫来说&#xff0c;是一个关键性的打击&#xff01;当一个爬虫被阻塞时&#xff0c;…

Qt项目环境构建

工欲善其事必先利其器&#xff0c;使用Qt来进行开发&#xff0c;得先配置好一个合适的环境。下面是我关于Qt项目环境构建的一些小结 Qt的项目构建主要依赖.pro文件&#xff08;和.pri文件&#xff1a;include包含文件&#xff0c;提供pro的复用性高的东西给多个项目包含) 所以新…

【企业架构框架】Mitre 架构联邦

定义&#xff1a; 架构联合是用于企业架构开发、维护和使用的框架&#xff0c;它对齐、定位和链接分离但相关的架构和架构信息&#xff0c;以向用户提供无缝的外观。 关键词&#xff1a; 企业架构&#xff0c;联邦架构&#xff0c;适合联邦&#xff0c;语义对齐&#xff0c;分层…

想要做好联络口译,需要掌握哪些技能?

据了解&#xff0c;联络口译员经常需要陪在外宾或者委托人身边出席各种各样的活动&#xff0c;除了翻译工作之外&#xff0c;有时还要兼任接待、导游等工作。那么&#xff0c;想要做好联络口译工作&#xff0c;需要掌握哪些技能&#xff1f; 首先&#xff0c;熟悉中外文化差异及…

在页面里面引入外部网页或者vue的其他页面组件

<div id"iframe-container"><iframe :src"iframeUrl" width"100vw" height"100vh" v-if"flagTwo"></iframe> </div>//可以是路径也可以是网络链接 data(){ return{iframeUrl :, }this.iframeUrl h…

从0到1精通自动化测试,pytest自动化测试框架,Hooks函数获取用例执行结果(二十三)

一、前言 pytest提供的很多钩子(Hooks)方法方便我们对测试用例框架进行二次开发&#xff0c;可以根据自己的需求进行改造 先学习下pytest_runtest_makereport这个钩子方法&#xff0c;可以更清晰的了解用例的执行过程&#xff0c;并获取到每个用例的执行结果 二、pytest_run…

【Part 1】现在去博物馆都预约不上了,黑产多少有点疯狂了

近几年不知道为啥&#xff0c;突然兴起博物馆热了&#xff0c;去某个城市&#xff0c;总想去当地的博物馆去打卡&#xff08;当然&#xff0c;可能重点还在打卡&#xff09;。但是周末去湖南省博物馆&#xff0c;发现免费的博物馆&#xff0c;现在已经预约不上了&#xff0c;最…

python面向对象编程学习1

python面向对象的基本要点&#xff0c; 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 使用 class 语句来创建一个新类&#xff0c;class 之后为类的名称并以冒号结尾&#xff1b; __init__()方…

lammps教程:固定边界丢失原子的几种解决办法

我是小马老师&#xff0c;本文介绍固定边界丢失原子的几种解决办法。 在lammps摩擦、润湿、冲击等模拟中&#xff0c;z方向多设为固定的f边界&#xff0c;如何设置不合理&#xff0c;会出现丢失原子的情况。 1.原因分析 以切削模拟为例&#xff0c;边界条件设为ppf&#xff…

PHP+MySQL:查询所有表格信息

效果 代码 $sql "SHOW TABLES"; $sql "SHOW TABLES"; $result DB_query($sql, $db); $myrow DB_fetch_array($result) echo <td> <a href" . $RootPath . /table_detial.php?table_name . $myrow[0] . "> . $myrow[0] . …