Мне удалось найти решение моей проблемы (тем не менее, я думаю, что это скорее альтернатива, чем правильное решение, я знаю, откуда возникла проблема, и вам следует знать, как я поступил так же).
Как упоминалось в посте, я использую установку Ubuntu 18.04 через WSL 2 на Windows 10. WSL - это среда в Windows 10, которая поддерживает запуск Linux родные двоичные файлы, и они должны быть максимально легкими. Это означает, что он не предоставляет пользователю комплекс GUI, а только терминал. Для получения дополнительной информации проверьте эту ссылку.
Я написал свой код в Visual Studio, который имеет расширение, которое интегрируется с WSL и в основном подключается к этой виртуальной машине. Это смутило меня, потому что я был в основном в Windows, пишу код в своем VSCode, но код работал на этой конкретной удаленной виртуальной машине через WSL. Еще одна интересная особенность этой виртуальной машины заключается в том, что даже если она имеет собственную изолированную файловую систему, вы можете получить доступ к Windows 'файлам через /mnt
.
Как говорится, причина matplotlib не работал должным образом (более конкретно, метод show()
, не обеспечивающий вывода) фактически был WSL . Приложение Python, которое я пытался запустить, очевидно, работало на WSL , но из-за природы WSL вывод не мог быть визуализирован.
Тот факт, что консолидирует это убеждение, использует тот же код с той же настройкой (Python 3.7.4, Conda 4.6.11 ) напрямую из Windows 10, без каких-либо WSL , как советует мне ImportanceOfBeingErnest. Очевидно, что код был успешно выполнен с желаемым графиком в качестве вывода.
Альтернатива для WSL 2 :
- Из-за к тому, что вы можете получить доступ к Windows файлам из
/mnt
, вместо того, чтобы пытаться нарисовать фигуру с помощью plt.show()
, просто используйте метод plt.savefig("figure_name.png")
- .png затем сохраняется на вашем компьютере и может быть визуализирован на вашем Windows
Off-topi c: Предпочитаете ли вы переходить с conda на ваш Windows или WSL 1/2 , я настоятельно рекомендую использовать виртуальные среды , которые он предоставляет, потому что они универсальны и позволяют вам настроить Python библиотеки с легкостью.