«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как решить проблему «_tkinter.TclError: нет отображаемого имени и нет переменной среды $DISPLAY» для сценариев Python, использующих Matplotlib на сервере?

Как решить проблему «_tkinter.TclError: нет отображаемого имени и нет переменной среды $DISPLAY» для сценариев Python, использующих Matplotlib на сервере?

Опубликовано 12 ноября 2024 г.
Просматривать:643

How to Solve the \

_tkinter.TclError: нет отображаемого имени и нет переменной среды $DISPLAY.

Проблема

Сценарии Python, использующие Matplotlib, завершаются сбоем на сервере с ошибкой " нет отображаемого имени и переменной среды $DISPLAY» при создании графиков. Проблема возникает из-за того, что Matplotlib по умолчанию использует серверную часть Xwindows и несовместим с серверными средами, в которых отсутствует графический интерфейс пользователя (GUI).

Решение

Чтобы решить эту проблему, настройте Matplotlib на использование неинтерактивный бэкэнд. Для этого существует несколько способов:

  1. Добавить код в скрипт: В начале скрипта, перед импортом matplotlib.pyplot, включите следующий код:
import matplotlib
matplotlib.use('Agg')
  1. Изменить файл конфигурации Matplotlib: В файле .config/matplotlib/matplotlibrc добавьте серверную часть строки: Agg. Это даст команду Matplotlib использовать неинтерактивный бэкэнд Agg.
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
  1. Использовать SSH с переадресацией X: При подключении к серверу через SSH используйте опцию -X, чтобы включить Xwindows. пересылка. Это позволит приложениям с графическим интерфейсом, работающим на сервере, взаимодействовать со средой графического интерфейса клиента.
ssh -X remoteMachine.com
  1. Экспортировать переменную $DISPLAY: Установите для переменной среды $DISPLAY подходящее значение, например IP-адрес и номер дисплея клиента. машина.
export DISPLAY=mymachine.com:0.0

Реализуя одно из этих решений, вы можете настроить Matplotlib для работы в серверной среде, не полагаясь на графический интерфейс.

Заявление о выпуске Эта статья перепечатана по адресу: 1729601178. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3