WSL避坑指南

Python042

WSL避坑指南,第1张

WSL(windows subsystem for linux)是在windows系统下运行的linux子系统,当我们需要linux环境的时候,用虚拟机性能损耗会非常严重,这时候我们可以选择使用WSL。这篇文章介绍了我在安装和使用WSL中的一些坑,希望将来的人能少走弯路。

参考微软的文档 https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 安装。

我遇到的一些问题:

配制Ubuntu镜像 https://developer.aliyun.com/mirror/ubuntu

可以在windows下安装docker desktop,然后设置使用wsl2的引擎使用。

或者在docker的官网上按照教程安装docker。

静进入网址: https://cr.console.aliyun.com/cn-hangzhou/mirrors

此处需要一个阿里云的账号,没有的话可以使用支付宝登录

登录进去会跳转到 容器镜像服务,需要密码

接下来按照里面的教程进行设置即可

在windows的vscode里安装Remote WSL插件之后可以在linux的子系统中通过输入code命令使用vscode。

文件共享也非常方便,启动WSL命令行的时候,默认访问的便是我们Windows的用户目录。

而要从Windows下访问Linux中文件,则可通过网络磁盘映射:\wsl$\Ubuntu 路径,这样整个Linux文件系统都可以暴露给Windows。

如果要在 Linux 分发版中构建网络应用(例如,在 NodeJS 或 SQL server 上运行的应用),可以使用 localhost 从 Windows 应用(如 Edge 或 Chrome Internet 浏览器)访问它(就像往常一样)。

但是,如果运行的是较旧版本的 Windows(版本 18945 或更低版本),则需要获取 Linux 主机 VM 的 IP 地址(或 更新到最新的 Windows 版本 )。

若要查找为 Linux 分发版提供支持的虚拟机的 IP 地址,请执行以下操作:

如果要从 Linux 分发版(即 Ubuntu)访问 Windows 上运行的网络应用(例如,在 NodeJS 或 SQL 服务器上运行的应用),则需要使用主机的 IP 地址。 虽然这不是一种常见方案,但你可以执行以下步骤来使其可行。 - 通过在 Linux 分发版中运行以下命令来获取主机的 IP 地址: cat /etc/resolv.conf - 复制以下词语后面的 IP 地址: nameserver 。 - 使用复制的 IP 地址连接到任何 Windows 服务器。

当使用远程 IP 地址连接到应用程序时,它们将被视为来自局域网 (LAN) 的连接。 这意味着你需要确保你的应用程序可以接受 LAN 连接。

例如,你可能需要将应用程序绑定到 0.0.0.0 而非 127.0.0.1 。 以使用 Flask 的 Python 应用为例,可以通过以下命令执行此操作: app.run(host='0.0.0.0') 。 进行这些更改时请注意安全性,因为这将允许来自你的 LAN 的连接。

当使用 WSL 1 分发版时,如果计算机设置为可供 LAN 访问,那么在 WSL 中运行的应用程序也可供在 LAN 中访问。

这不是 WSL 2 中的默认情况。 WSL 2 有一个带有其自己独一无二的 IP 地址的虚拟化以太网适配器。 目前,若要启用此工作流,你需要执行与常规虚拟机相同的步骤。

WSL2 分发版目前无法访问纯 IPv6 地址。

参考资料:

https://www.jianshu.com/p/6b02948b3d37

https://www.liumingye.cn/archives/326.html

https://zhuanlan.zhihu.com/p/104771275?utm_source=cn.wiz.note

日前因工作需要,整在一点一点熟悉开源跨平台消息中间件: nanomsg ,恰逢最近安装了 Typora 用于练习Markdown语法,那就一并把学习总结整理记录下来并同步更新到方便他人和自己日后回看。

nnpy是其中一个对nanomsg的python wrapper,相比于nanomsg-python日渐缺少维护,更推荐使用nnpy。另外,现在也有了nng(nanomsg next negeration),当nanomsg使用熟练后可考虑转nng。

本文基于Pyhton3.7,当前nnpy的最新版本为 1.4.2 ,依次安装cmake、nanomsg、cffi和nnpy:

这里使用的开发环境为 Jetbrains Pycharm 2019 + WSL ,WSL使用的是Kali-Linux,其他版本如Ubuntu、Debian等也都可以。

我本机装的是Python 3.6,点击右下角当前正在使用的本地解析器名称 Python 3.6 ,选择 Add Interpreter

从左侧选择 WSL 后,右侧面板自动出来当前的WSL发行版本,注意的是这里默认的解析器路径为/usr/bin/python,Kali-Linux默认安装的时候只有python3没有python,需要手动改为 /usr/bin/python3

而后点击 OK 完成WSL Interpreter的添加,在右下角选择 3.7@Kali Linux 即可启用WSL作为远程开发环境——不需要SSH、虚拟机或VPS就能在Windows下进行Linux开发,简直不要太舒服!!

nanomsg提供了如下几种通信模式,太具体的不介绍,说完会用就明白是怎么回事儿了:

PipeLine

PushPub

Pair

ReqRep

Survey

Bus :

关于各通信模式的验证请前往本系列后续文章: