使用Windows子系统Linux时设置Matplotlib后端

时间:2016-11-22 16:36:27

标签: python linux matplotlib windows-subsystem-for-linux

我的Matplotlib后端不断恢复为TkAgg。这是一个问题,因为在Windows的Solaris子系统(WSL)中,你不能做GUI的东西,所以我得到了错误

  

TclError:没有显示名称和没有$ DISPLAY环境变量

我尝试将matplotlibrc文件添加到/home/<user>/.config/matplotlib(在Windows文件系统中,这是C:\Users\<user>\AppData\Local\lxss\home\<user>\.config\matplotlib)。

我的matplotlibrc看起来像这样

backend : Agg

但是,如果我这样做

$ cd /home/<user>/.config/matplotlib
$ ls -A
什么都没有出现。

当我尝试

 $ python
 >>> import matplotlib
 >>> matplotlib.get_backend()
 'TkAgg'

很明显,它没有将后端设置为Agg。为什么不呢?

更新

我已经发现将backend : Agg置于C:\Users\<user>\AppData\Local\lxss\home\<user>\.config\matplotlib\matplotlibrc只会更改Windows Python中的后端,而将Linux Python保留为TkAgg。这很奇怪,因为Windows Python应该只使用C:\Users\<user>\AppData\Local\Enthought\Canopy\User\Lib\site-packages\matplotlib\mpl-data\matplotlibrc,对吧?

1 个答案:

答案 0 :(得分:3)

我明白了。我使用Windows创建了matplotlibrc文件 - 这就是为什么当我在bash中尝试$ ls -A时它没有显示出来的原因。所以我改为(删除Windows创建的文件后):

$ cd /home/<user>/.config/matplotlib
$ touch matplotlibrc
$ echo "backend : Agg" > matplotlibrc

touch matplotlibrc创建一个空的matplotlibrc文件)

这样做了,我的Windows python matplotlib的后端留下了Qt4Agg。

这里有一行用于复制/粘贴:

cd /home/<user>/.config/matplotlib; touch matplotlibrc && echo "backend : Agg" > matplotlibrc