bin*_*unt 5 python linux matplotlib windows-subsystem-for-linux
我的Matplotlib后端一直在恢复TkAgg.这是一个问题,因为在Windows子系统Linux(WSL)中,你不能做GUI的东西,所以我得到错误
TclError:没有显示名称和没有$ DISPLAY环境变量
我试过添加一个matplotlibrc文件/home/<user>/.config/matplotlib(在Windows文件系统中,这是C:\Users\<user>\AppData\Local\lxss\home\<user>\.config\matplotlib).
我matplotlibrc看起来像这样
backend : Agg
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做
$ cd /home/<user>/.config/matplotlib
$ ls -A
Run Code Online (Sandbox Code Playgroud)
没有出现.
当我尝试
$ python
>>> import matplotlib
>>> matplotlib.get_backend()
'TkAgg'
Run Code Online (Sandbox Code Playgroud)
很明显,它不是设置后端Agg.为什么不?
更新:
我已经发现只在Windows Python backend : Agg中C:\Users\<user>\AppData\Local\lxss\home\<user>\.config\matplotlib\matplotlibrc更改后端,而将Linux Python作为TkAgg.这很奇怪,因为Windows Python应该只使用C:\Users\<user>\AppData\Local\Enthought\Canopy\User\Lib\site-packages\matplotlib\mpl-data\matplotlibrc,对吧?
我想到了。我使用 Windows 创建了 matplotlibrc 文件 - 这就是为什么当我在 bash 中尝试时它没有显示$ ls -A。所以我这样做了(删除 Windows 创建的文件后):
$ cd /home/<user>/.config/matplotlib
$ touch matplotlibrc
$ echo "backend : Agg" > matplotlibrc
Run Code Online (Sandbox Code Playgroud)
(touch matplotlibrc创建一个空的 matplotlibrc 文件)
这成功了,我的 Windows python matplotlib 的后端被保留为 Qt4Agg。
这是复制/粘贴的一行:
cd /home/<user>/.config/matplotlib; touch matplotlibrc && echo "backend : Agg" > matplotlibrc
Run Code Online (Sandbox Code Playgroud)