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

news/2024/10/17 23:25:31/

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

安装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.ppmy.cn/news/704521.html

相关文章

mgg格式怎么转换为mp3_太好用了!批量转换MP3格式了解一下

有时候,我们即将上传一批音频,却被告知必须上传MP3格式才行。OMG!一大批的音频处理起来实在太麻烦了,怎么办? 或许,你用得上GoldWave汉化版,这是一款功能强大的音频编辑软件,批量将音频转化成MP…

wav怎么转mp3?请看详细步骤

wav怎么转mp3?在互联网技术高速发展的今天,知识壁垒日益被打破,很多小伙伴遇到wav格式的音频文件时会出现不能播放的情况,但是再也不用像从前那样,不知道它是什么格式,不知道怎么解决不能播放的问题。我们只…

mp3格式怎么弄?分享三个音频文件格式转换的方法

不知道小伙伴们有没有遇到过这样的情况,在网上下载一首歌下来,正想打开,结果却发现我们的播放器无法播放。你们知道这是为什么嘛,其实我们的音频文件是有很多不同的格式,其中就有些比较少见的格式,我们的音…

快速转换音频格式,教你mp3转换器该怎么用

在数字化时代,音乐和声音成为了我们生活中不可或缺的一部分。当今音频文件格式繁多,但并非所有设备和平台都支持这些格式。这时,mp3转换器就成为了一个非常实用的工具,无论是想将cd音轨转换为数字化的mp3文件,还是需要…

MP3Stego的打开方式与使用方法

我用了一天才把这个弄明白QAQ 我不知怎么打开这个软件,不知怎么用这个命令,不知为啥总是显示找不着这个找不着那个,百度不到使用方法……不过请教大身后终于弄明白了QAQ 1首先打开windows的命令行cmd 在我的电脑那里输入cmd按回车即可进入 …

mp3格式怎么转换?这3种方法轻松帮你搞定!

随着互联网时代的发展,音频格式也逐渐呈现多样化,不再局限于mp3格式。然而由于音频格式的不断增加,与播放器不兼容的情况也时有发生。这个问题该如何解决呢?其实我们只需借助一些音频软件把音频转换成mp3格式就可以了!…

C# 标识符命名规则和约定

目录 命名规则 命名约定 C# 编码约定 命名约定 帕斯卡拼写法 驼峰式大小写 如何使用模式匹配以及 is 和 as 运算符安全地进行强制转换 标识符是分配给类型(类、接口、结构、记录、委托或枚举)、成员、变量或命名空间的名称。 命名规则 有效标识符…

萌新带你开车上p站(二)

本文作者:萌新 前情提要:萌新带你开车上p站(一) 0x04flag 看题目描述似乎是一个和脱壳相关的逆向题目 按照给出的地址先下载过来 file看看 是个可执行文件 执行之 emm什么都看不出来,又没有源码 那载入gdb吧 e…