我的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
,对吧?
答案 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