Python WSL Ubuntu中绘制图形时经常出现的问题
我正在编写一段代码,该代码应该可以绘制一个简单的函数,它暂时可以工作,但当我重新启动计算机时,我不断遇到这种问题循环:Python WSL Ubuntu中绘制图形时经常出现的问题,python,ubuntu,matplotlib,plot,xming,Python,Ubuntu,Matplotlib,Plot,Xming,我正在编写一段代码,该代码应该可以绘制一个简单的函数,它暂时可以工作,但当我重新启动计算机时,我不断遇到这种问题循环: 我第一次尝试运行代码时,它不会发出任何错误,但也不会创建任何图形 -->为了解决这个问题,我安装了Xming,并按照awokein的建议,在bash中编写了export DISPLAY=localhost:0.0命令 当我运行代码时,经过上述调整,我得到以下错误: \u tkinter.TclError:没有显示名称和$display环境变量。 -->为了解决这个问题,我添加
export DISPLAY=localhost:0.0
命令
\u tkinter.TclError:没有显示名称和$display环境变量。
-->为了解决这个问题,我添加了一行代码:
matplotlib.use('Agg')
matplotlib.use('Agg')
正如《和平年代》中提出的那样
matplotlib.use('Agg')
matplotlib.use('Agg')
通过这样做,代码再次绘制
然后,当我重新启动计算机时,一系列问题又重新开始了
有人知道我做错了什么吗?我对使用Python非常陌生,所以很可能我遗漏了一些明显的东西
以下是我的代码的相关部分:
#Imports
import matplotlib
import matplotlib.pyplot as ply
from dolfin import *
import numpy as np
from mshr import *
import math
from math import exp
plt.plot(tiemporeal,fcmM1)
plt.xlabel('Tiempo')
plt.ylabel('Resistencia')
plt.show()
非常感谢,很抱歉可能出现格式错误
另外,我正在Ubuntu上使用Python3。对于遗留WSL,添加它就足够了
导出显示=127.0.0.1:0
到您的~/.bashrc
文件-默认后端应该可以正常工作。对于WSL2,它更复杂,您需要从/etc/resolv.conf
获取服务器名称,然后从ifconfig
获取掩码。例如,在我的系统上:
wmiller@lcl:~$cat/etc/resolv.conf
#此文件由WSL自动生成。要停止自动生成此文件,
#将以下条目添加到/etc/wsl.conf:
#[网络]
#generateResolvConf=false
名称服务器172.28.176.1
及
wmiller@lcl:~$ifconfig | grep'inet'
inet 172.28.176.7网络掩码255.255.240.0广播172.28.191.255
inet 127.0.0.1网络掩码255.0.0.0
因此,我的显示需要172.28.176.7:240.0
。自动提取会有点复杂,但将以下命令添加到~/.bashrc
对我来说很有用:
export DISPLAY=$((ifconfig | grep-f)将显示环境更改为“TkAgg”成功了。谢谢!