2016-11-22 4 views
4

Мой бэкэнд Matplotlib продолжает возвращаться к TkAgg. Это проблема, потому что в Windows, Subsystem для Linux (WSL), вы не можете сделать GUI вещи, и поэтому я получаю ошибкуУстановите базовый компонент Matplotlib при использовании подсистемы Windows для Linux

TclError: no display name and no $DISPLAY environment variable

Я попытался добавить 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. Почему нет?

Update:

Я понял, что положить 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, верно?

ответ

3

Я понял. Я создал файл matplotlibrc с помощью Windows - вот почему он не появился, когда я попытался $ ls -A в bash. Так что я сделал это вместо того, чтобы (после удаления Windows, созданный файла):

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

(touch matplotlibrc создает пустой файл matplotlibrc)

Это сделали трюк, и бэкенд моего окон Python Matplotlib был оставлен в Qt4Agg.


Здесь на одной строке для копирования/вставки:

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

Действительно [Не изменять файлы Linux с помощью приложений для Windows и инструменты] (https://blogs.msdn.microsoft.com/ commander/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools /) – divenex

+0

Если мы запускаем код на ubuntu для Windows, как мы можем получить сюжет для " объявиться". Может быть, украсить .show(), чтобы просто сохранить fng в png в папке Windows и иметь некоторый инструмент, контролирующий папку и показывающий изображения? лучший путь? – AwokeKnowing