WSL和WSL2介绍及使用wsl在pycharm,vscode中搭建python项目环境

wsl 简介

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu14.04 TrustyTahr映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

WSL提供了一个微软开发的Linux兼容内核接口(不包含Linux代码),来自Ubuntu的用户模式二进制文件在其上运行。 [4] 该子系统不能运行所有Linux软件,例如那些图形用户界面,以及那些需要未实现的Linux内核服务的软件。不过,这可以用在外部X服务器上运行的图形X Window系统缓解。

您可以:

  • 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
    • 工具:vim、emacs、tmux
    • 语言:NodeJS、Javascript、Python、Ruby、C/C++、C# 与 F#、Rust、Go 等
    • 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。
  • 工具:vim、emacs、tmux
  • 语言:NodeJS、Javascript、Python、Ruby、C/C++、C# 与 F#、Rust、Go 等
  • 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。

在这里插入图片描述

什么是wsl2

在这里插入图片描述

WSL2是WSL1的升级版,提供了更好的文件系统性能和更完全的Linux系统内核支持,WSL2 使用虚拟化技术在轻量级虚拟机 (VM) 中运行 Linux 内核,同时保留了WSL1的操作体验,可以把通过WSL2启动的Linux系统认为是虚拟机中的一个Linux系统,因此,相对于通过用户模式和内核模式组件构成兼容性底层来运行Linux的WSL1来说,WSL2的Linux系统更完整,功能更完善。例如,WSL1不支持Docker,而WSL2可以以原生的方式运行Docker(Empowering App Development for Developers | Docker)。

比较 WSL 1 和 WSL 2

从 WSL 1 更新到 WSL 2的主要原因包括:

  • 提高文件系统性能,
  • 支持完全的系统调用兼容性。

WSL 2 使用最新、最强大的虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。 但是,WSL 2 不是传统的 VM 体验。

在这里插入图片描述

WSL 2 中的新增功能

  • WSL 2 体系结构

传统的 VM 体验可能启动速度慢,是独立的,消耗大量资源,需要你花费时间进行管理。 WSL 2 没有这些属性。
WSL 2 有 WSL 1 的优点,包括 Windows 和 Linux 之间的无缝集成,启动时间短,资源占用量少,并且无需 VM 配置或管理。 虽然 WSL 2 确实使用 VM,但 VM 是在幕后管理和运行的,因此你将具有与 WSL 1 相同的用户体验。

  • 完整的 Linux 内核

WSL 2 中的 Linux 内核是 Microsoft 根据最新的稳定版分支(基于 kernel.org 上提供的源代码)构建的。此内核已专门针对 WSL 2 进行了调整,针对大小和性能进行了优化,以便在 Windows 上提供良好的 Linux 体验。 内核将由 Windows 更新提供服务,这意味着你将获得最新的安全修补程序和内核改进功能,而无需自行管理它。

  • 提升了文件 IO 性能

如果使用 WSL 2,文件密集型操作(如 git 克隆、npm 安装、apt 更新、apt 升级等)的速度都明显更快。
实际的速度提升将取决于你运行的应用以及它与文件系统的交互方式。 在对压缩的 tarball 进行解包时,WSL 2 的初始版本的运行速度比 WSL 1 快达 20 倍,在各种项目上使用 git 克隆、npm 安装和 cmake 时,大约快 2-5 倍。

  • 完全的系统调用兼容性

Linux 二进制文件使用系统调用来执行访问文件、请求内存、创建进程等功能。 虽然 WSL 1 使用的是由 WSL 团队构建的转换层,但 WSL 2 包括了自己的 Linux 内核,具有完全的系统调用兼容性。 优点包括:

  • 可以在 WSL 内部运行的一组全新应用,例如 Docker 等。

  • 对 Linux 内核的任何更新都立即可供使用。 (无需等待 WSL 团队实现更新并添加更改)。

wsl 基本命令

wsl 安装

PowerShell下输入

wsl --install

安装特定的 Linux 发行版

wsl --install --distribution

通过将 替换为发行版名称,指定除默认发行版 (Ubuntu) 之外的 Linux 发行版进行安装。 此命令也可输入为:wsl -d 。

列出可用的 Linux 发行版

wsl --list --verbose

将 WSL 版本设置为 1 或 2

wsl --set-version

更新 WSL

wsl --update

WSL1升级为WSL2

首先需要启用组件

  • 使用管理员打开Powershell并运行

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

  • 启用后会要求重启计算机

其次更新WSL2内核

-查看目前的WSL版本

wsl -l -v
#输出
Name State Version
Ubuntu-20.04 Stopped 1

执行更新

wsl --set-version 分发版名称 版本号

例如,将Ubuntu18.04 设置为WSL2的命令为 wsl --set-version Ubuntu-18.04 2

该步骤会花一些时间,如果安装成功,会出现转移成功。

完成后重新检测

wsl -l -v
#输出
Name State Version
Ubuntu-20.04 Stopped 2

wsl安装到非C盘解决方案

wsl默认安装在C盘的问题,觉得安装在C盘太占内存,想安装到其他盘

方法一:

  1. 下载版本

    Ubuntu 20.04:https://aka.ms/wslubuntu2004
    Ubuntu 18.04:https://aka.ms/wsl-ubuntu-1804
    Kali :https://aka.ms/wsl-kali-linux-new
    Debian:https://aka.ms/wsl-debian-gnulinux

  2. 接着,修改软件包扩展名,改为.zip即可,然后解压(想安装到哪个磁盘,解压到哪个磁盘):

  3. 直接双击我们解压的ubuntu1804.exe可执行文件就可以开始安装了:

方法二:

  1. 打开管理员PowerShell,输入以下命令

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

    1. 执行以下命令安装

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

在pycharm 中使用wsl

配置解释器

1、通过以下两种方式打开“ 添加Python解释器”对话框:

  • 当您在编辑器中时,最方便的方法是在状态栏中使用Python Interpreter小部件。单击小部件,然后选择添加解释器…

  • 通过按或选择文件| 打开“ 设置/首选项对话框” 。设置 Windows和Linux或 PyCharm | macOS的首选项。 Ctrl+Alt+S

  • 在“ 设置/首选项”对话框中Ctrl+Alt+S,选择“ 项目<项目名称>” |“项目”。项目口译员。单击配置项目解释器图标,然后选择添加。

2、在对话框的左侧窗格中,单击WSL。

在这里插入图片描述
3、选择Linux发行版,然后在所选Linux发行版中指定python可执行文件的路径。

完成后,新的解释器将添加到您的项目中,并将设置默认的mnt映射。
在这里插入图片描述
请注意,使用WSL不能创建虚拟环境:您安装的所有软件包都将添加到相应的系统解释器中。系统将要求您输入您的sudo密码。

在这里插入图片描述
PyCharm允许您使用在WSL上运行的自定义Linux发行版。这可以通过在检测到WSL之后自动编辑PyCharm创建的wsl.distributions.xml配置文件来完成。

完成以上操作就可以正常使用了。

在vs code中使用wsl

vscode已经安装了python

从命令行中

若要从 WSL 发行版打开项目,请打开发行版的命令行并输入:code .
在这里插入图片描述

从 VS Code 中

1、官网下载vscode

2、vscode插件内搜索 Remote-WSL并安装
在这里插入图片描述

安装完成后vscode会多出如下的图标
在这里插入图片描述
点击 并选择new window

在这里插入图片描述
此时vscode将打开一个新窗口并连接上linux子系统

打开Terminal发现提示符存在乱码, 下载FiraCode 这个号称程序专用字体,并将vscode终端配置为该字体即可

在这里插入图片描述
最后效果如下

在这里插入图片描述
写代码

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

x=np.arange(11)
y=x**2
plt.plot(x,y)
plt.show()

在这里插入图片描述

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
【资源说明】 基于python实现的京东预约商品自动下单源码.zip 京东预约商品抢购 借鉴了https://github.com/Lasx/jd_mask的代码 十分感谢原作者! 本来其实是准备直接下载下来用的, 但是跑了一下, 失败了, 因为送货地址取不到。然后自己改了一下代码。 在2022/12/26晚上用来抢了一单抗原,它能自动下单成功, 下单成功后需要你去点开订单手动支付。 2022-12-26 20:15:00,335 INFO: 时间到达,开始执行…… 2022-12-26 20:15:00,534 INFO: 抢购链接获取失败,%s不是抢购商品或抢购页面暂未刷新,1秒后重试 2022-12-26 20:15:01,735 INFO: 抢购链接获取成功: https://marathon.jd.com/captcha.html?skuId=xxxxx 2022-12-26 20:15:01,735 INFO: 访问商品的抢购连接... 2022-12-26 20:15:01,980 INFO: 访问抢购订单结算页面... 2022-12-26 20:15:02,064 INFO: 生成提交抢购订单所需参数... 2022-12-26 20:15:02,064 INFO: 获取秒杀初始化信息... 2022-12-26 20:15:02,254 INFO: 提交抢购订单... 2022-12-26 20:15:02,505 INFO: 抢购成功,订单号:***, 总价:**.90, 电脑端付款链接:https://sko.jd.com/success/success.action?orderId=xx 主要功能 登陆京东商城(www.jd.com) cookies登录 (需要自己手动获取) 预约商品 定时自动预约 秒杀预约后等待抢购的商品 定时开始自动抢购 运行环境 Python 3 第三方库 Requests 使用教程 程序主入口在 main.py 在config.ini文件填入config里面对应的内容 eid,和fp找个普通商品随便下单,然后抓包就能看到,这两个值可以填固定的(在京东订单结算页面,F12 console里面输入_JdTdudfp就会返回一个json对象,里面就有) cookies_string,sku_id,DEFAULT_USER_AGENT(和cookie获取同一个地方就会看到.直接复制进去就可以了),以上都是必填的. 启动时按照提示操作输入需要的功能即可 更新记录 备注 使用的时候需要注意一下本机的时间是否和标准时间是一致的,一开始我用的wsl来跑, 结果发现wslwindows的时间不同步,贼尴尬。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
vscode最新插件合集(20190814)part1,共2个分包(part1/2),都下载后用命令“copy /b extensions.zip.rm1+extensions.zip.rm2 extensions.zip”合并再解压。 包合以下插件: wholroyd.jinja-0.0.8 daltonjorge.scala-0.0.5 eriklynd.json-tools-1.0.2 truman.autocomplate-shell-0.1.1 sensourceinc.vscode-sql-beautify-0.0.4 danields761.dracula-theme-from-intellij-pythoned-0.1.4 gerane.theme-druid-0.0.2 luqimin.forgive-green-0.2.1 mohsen1.prettify-json-0.0.3 chrmarti.regex-0.2.0 kalitaalexey.vscode-rust-0.4.2 ZakCodes.rust-snippets-0.0.1 itryapitsin.scala-0.1.7 itryapitsin.scalasnippets-0.1.7 vahidk.tensorflow-snippets-0.3.3 formulahendry.terminal-0.0.10 qub.qub-xml-vscode-1.2.8 waderyan.nodejs-extension-pack-0.1.9 jasonnutter.search-node-modules-1.3.0 christian-kohler.path-intellisense-1.4.2 christian-kohler.npm-intellisense-1.3.0 josephtbradley.hive-sql-0.0.4 magicstack.magicpython-1.1.0 ms-python.anaconda-extension-pack-1.0.1 mooman219.rust-assist-0.2.3 slevesque.vscode-hexdump-1.7.2 coenraads.bracket-pair-colorizer-1.0.61 bibhasdn.django-snippets-1.1.1 bibhasdn.django-html-1.3.0 octref.vscode-json-transform-0.1.2 xabikos.javascriptsnippets-1.7.2 jithurjacob.nbpreviewer-1.2.2 kondratiev.sshextension-0.5.0 humy2833.ftp-simple-0.7.0 batisteo.vscode-django-0.19.0 fwcd.kotlin-0.1.13 reditorsupport.r-lsp-0.1.0 ms-vsts.team-1.149.2 donjayamanne.jupyter-1.1.5 rust-lang.rust-0.6.1 grapecity.gc-excelviewer-2.1.32 vscjava.vscode-java-pack-0.7.1 ms-toolsai.vscode-ai-0.5.1 dbaeumer.vscode-eslint-1.9.0 ms-vscode.azure-account-0.8.4 rogalmic.bash-debug-0.3.5 donjayamanne.python-extension-pack-1.6.0 redhat.vscode-yaml-0.4.1 adisreyaj.swagger-snippets-0.0.1 alefragnani.bookmarks-10.4.4 arjun.swagger-viewer-2.2.2 dotjoshjohnson.xml-2.5.0 fisheva.eva-theme-0.7.7 vscjava.vscode-java-dependency-0.5.1 deerawan.vscode-hasher-1.0.1 vscjava.vscode-java-debug-0.20.0 scala-lang.scala-0.3.4 eg2.vscode-npm-script-0.3.8 vscjava.vscode-maven-0.18.1 ms-vscode.go-0.11.4 lextudio.restructuredtext-113.0.0 pkief.material-icon-theme-3.8.1 ms-azuretools.vscode-docker-0.7.0 redhat.java-0.47.0 julialang.language-julia-0.12.0 ms-kubernetes-tools.vscode-kubernetes-tools-1.0.2 yzhang.markdown-all-in-one-2.4.2 ms-vscode.cpptools-0.24.1 davidanson.vscode-markdownlint-0.30.1 zhuangtongfa.material-theme-2.26.3 formulahendry.code-runner-0.9.12 ikuyadeu.r-1.1.1 bitlang.cobol-5.2.4 vscjava.vscode-java-test-0.19.0 humao.rest-client-0.22.0 ms-ceintl.vscode-language-pack-zh-hans-1.37.3 ms-ceintl.vscode-language-pack-zh-hans-1.37.5 mtxr.sqltools-0.20.1 ms-vscode-remote.remote-wsl-0.39.2 alefragnani.bookmarks-10.5.0 ms-vsliveshare.vsliveshare-1.0.694 visualstudioexptteam.vscodeintellicode-1.1.9 ms-python.python-2019.8.30787 coenraads.bracket-pair-colorizer-2-0.0.28 dart-code.flutter-3.3.0 dart-code.dart-code-3.3.0 ibm.db2connect-win-1.0.2 oderwat.indent-rainbow-7.4.0 ms-vscode-remote.vscode-remote-extensionpack-0.16.0 ms-vscode-remote.remote-ssh-0.45.5 ms-vscode-remote.remote-ssh-edit-0.45.5 ms-vscode-remote.remote-containers-0.67.3 ms-vscode-remote.remote-ssh-explorer-0.45.5 foxundermoon.shell-format-6.1.1 qcz.text-power-tools-1.11.1 gruntfuggly.todo-tree-0.0.141 vscode-icons-team.vscode-icons-9.2.0 tomoki1207.pdf-0.5.0
W10的WSL(SubSystem for Linux)功能可以让Windows系统下安装一个兼容Linux的环境,其包括Ubuntu,提供给开发者更为便捷的开发环境。本文将介绍搭建WSL Ubuntu开发环境的详细步骤。 首先,需要在Windows 10系统启用WSL功能。具体操作为:进入“控制面板”-“程序”-“启用或关闭Windows功能”-勾选“适用于Linux的Windows子系统”并应用更改。 搭建WSL Ubuntu的环境,也分为几个步骤。首先,在Microsoft store搜索Ubuntu并下载安装。安装完成后打开,系统会提示输入用户名和密码,这里输入的是为Ubuntu配置的用户名和密码。接着,建议及时更新系统,输入以下指令: ``` sudo apt update sudo apt upgrade ``` 之后就可以开始搭建环境了,可以根据需要安装和配置如下开发环境: 1. 安装python开发环境 输入以下指令: ``` sudo apt install python3 sudo apt install python3-pip ``` 2. 安装java开发环境 输入以下指令: ``` sudo apt install default-jre sudo apt install default-jdk ``` 3. 安装node.js环境 输入以下指令: ``` curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt-get install -y nodejs ``` 4. 安装vscode以及其它开发工具 在Windows系统下载安装vscode,然后打开,按Ctrl+Shift+P调出命令面板,输入“WSL: 打开新的终端”,就可以在Ubuntu打开vscode,实现兼容开发。 总结起来,搭建WSL的Ubuntu开发环境需要在Windows系统启用WSL功能,下载安装Ubuntu,配置环境并安装开发工具。相比于直接在Windows系统搭建开发环境WSL Ubuntu更能提升开发效率,同时在Windows和Linux之间切换也更加方便,对于需要同时开发两个系统的开发者来说是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kuokay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值