默认情况下,Win10的linux子系统(WSL)是只能使用命令行程序的。所有图形界面的程序都无法执行。

通过为Win10安装XWindows协议的终端应用,可以让Win10成为一台XWindow终端,从而接受Linux的XWindow显示输出。

这样的终端应用有挺多,XmingVcXsrv是其中著名的两个。下载安装就可以,我因为一些习惯上的原因使用了后者。

安装设置都使用默认即可,其中在显示端口设置的位置,默认是-1,表示自动选择,大多数情况是可以工作的。也碰到过不能连通的情况,这时候可以尝试设置成跟你Linux设置相同的端口,比如0。

Linux的环境参数设置可以放在~/.bashrc文件中,只要两行:

export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=1

使用的时候先启动XWindow终端程序。启动WSL,比如我用的Ubuntu(WSL已经启动的话,刚修改完配置文件也要重新启动或者重新连接一次以便配置生效),这时候Linux已经可以使用GUI输出了,但默认情况下的安装,是没有任何GUI程序的。可以安装一些小程序测试一下:

$ sudo apt install x11-apps
...
$ xeyes



这表示整个GUI系统已经正常工作了。

并不建议在Linux安装桌面系统,我觉得既然已经选择了Windows作为前端,就踏踏实实的用Windows,后端Linux使用命令行才是正路子。安装XWindow只是为了使用Linux的GUI应用输出。桌面系统做文件管理、系统设置之类的操作,长久来看一定是得不偿失的,特别是在技能习惯上。

Python的绘图库,比如常用的matplotlib,在WSL中会默认使用Agg绘图后端。这是一个哑终端,不做GUI输出,但是可以保存绘制的图形到文件。

安装XWindow之后,希望使用matplotlib绘图输出,需要另外安装TkAgg库,否则仍然无法绘图显示。

安装之前先在Python的启动信息中确认一下Python的版本,如果不是3.6或者3.6.x的版本,请对应修改下面安装的软件包。

$ sudo apt-get install python3.6-tk

之后并不需要重新安装matplotlib库。

使用我们原来课程中的绘图示例来看看效果:

#绘制正弦曲线

#引入数值计算库,改为短名称
import numpy as np
#引入绘图库,改为短名称
import matplotlib.pyplot as plt #生成一个由-4到4、均分为200个元素的列表
x = np.linspace(-4, 4, 200)
#计算当x取值范围-4至4时所有的sin函数解
f = np.sin(x) #绘制
plt.plot(x, f, 'red') #将绘制好的图显示出来
plt.show()

结果就是题头图了,WSL跟Win10桌面应用和平相处,共创和谐社会。

win10配置linux子系统使用python绘图并显示--WSL使用GUI输出的更多相关文章

  1. 如何优雅地使用win10的Linux子系统

    转自: http://blog.csdn.net/u010053050/article/details/52388663 http://www.rehack.cn/techshare/devtools ...

  2. 手把手教你启用Win10的Linux子系统(超详细)

    原文:手把手教你启用Win10的Linux子系统(超详细) 版权声明:转载请保留出处,谢谢! https://blog.csdn.net/zhangdongren/article/details/82 ...

  3. win10安装linux子系统(wsl)

    win10安装linux子系统(wsl) 1.打开Microsoft Store 方式一:在电脑左下角打开 方式二:在电脑左下角的搜索里里输入Microsoft Store 打开Microsoft S ...

  4. Win10 安装 Linux 子系统

    Win10 安装 Linux 子系统 因为最近要使用Linux搭服务器,但是用远程的话延迟很烦,用双系统切换很麻烦,用虚拟机又会有点卡,刚好Windows10最近更新了正式版的WSL(windows下 ...

  5. win10下Linux子系统开启ssh服务

    原文:win10下Linux子系统开启ssh服务 为了便于交流共同学习,博主QQ群242629020(stm32-MCU认认真真交流群) 欢迎批评指导!!!电梯:https://jq.qq.com/? ...

  6. 在win10的Linux子系统(WSL)上搭载python编程环境

    为什么使用WSL进行python编程 WSL,全称Windows Subsystem for Linux.简言之,win10提供了一个子Linux系统,可以解决虚拟机和双系统的系统之间阻隔的问题而不影 ...

  7. 记录下WIN下配置LINUX虚拟机及PYTHON环境

    因为听说服务器端大多都是LINUX/UNIX,LINUX是程序员必须适应的编程环境,所以今天折腾了一下,给笔记本装了个LINUX虚拟机,并顺便给WINDOWS和LINUX都配置了PYTHON环境. 这 ...

  8. 【ASP.NET Core】准备工作:在 Windows 10 上配置 Linux 子系统

    ASP.NET Core 其实比传统的 ASP.NET 要简单很多,而且也灵活很多,并且可以跨平台独立运行. 在 Windows 平台上,我们只要在安装 Visual Studio 的时候选择跨平台的 ...

  9. Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境

    0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...

随机推荐

  1. Bayer图像处理 raw 数据解析

    Bayer是相机内部的原始图片, 一般后缀名为.raw. 很多软件都可以查看, 比如PS. 我们相机拍照下来存储在存储卡上的.jpeg或其它格式的图片, 都是从.raw格式转化 过来的. .raw格式 ...

  2. MySQL 表记录查询小练习

    表记录查询小练习 查看岗位是teacher的员工姓名.年龄 查看岗位是teacher且年龄大于26岁的员工姓名.年龄 查看岗位是teacher且薪资在12000-16000范围内的员工姓名.年龄.薪资 ...

  3. 【CentOS7】设置静态IP地址

    [CentOS7]设置静态IP地址 转载:https://www.cnblogs.com/yangchongxing/p/10645871.html 图像化修改 nmtui 查看当前网卡名称 # if ...

  4. 【Java SE】使用Javacv截取视频图片

    [Java Web开发学习]使用Javacv截取视频图片 转载:https://www.cnblogs.com/yangchongxing/p/9482935.html github地址:https: ...

  5. C# VS2010 windows服务的安装

    可能是太过于懒惰的原因,研究个windows 服务的安装程序都花了大半天时间.在网上看了一些示例,大部分都言过其实,把过程搞得太过复杂,老是需要去研究如何利用InstallUtil.exe及其参数.事 ...

  6. 使用Future

    /** * Runnable接口有个问题,它的方法没有返回值.如果任务需要一个返回结果,那么只能保存到变量,还要提供额外的方法读取,非常不便. * Java标准库还提供了一个Callable接口,和R ...

  7. NetCore MemoryCache使用

    引用类库 1.Install-Package Microsoft.Extensions.Caching.Memory MemoryCacheOptions 缓存配置 1.ExpirationScanF ...

  8. 基于vue+leaflet+echart的足迹分享评论平台

    (其实题目是随便取的,目的只是用来证明Vue+leaflet+springboot技术栈的可行性) 效果 小专栏不支持上传视频?想看的话可以去我的知乎看最新的文章,那个应该可以.在这里 主要功能描述 ...

  9. Visual Studio 2019使用码云设置过滤忽略的文件或文件夹(ignore file)

    Visual Studio 2019使用码云的时候,会遇到 “Git failed with a fatal error.error: open(".vs/{{项目名称}}/Server/s ...

  10. docker快速安装rabbitmq

    1.进入docker hub镜像仓库地址:https://hub.docker.com/ 2.搜索rabbitMq,进入官方的镜像,可以看到以下几种类型的镜像:我们选择带有“mangement”的版本 ...