При использовании matplotlib в коде Visual Studio для отображения графики графика не отвечает, и появляется следующее сообщение об ошибке:
Failed to enable GUI event loop integration for 'qt'
Traceback (most recent call last):
File "~\.vscode\extensions\ms-python.debugpy-2024.8.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydev_ipython\matplotlibtools.py", line 30, in do_enable_gui
enable_gui(guiname)
File "~\.vscode\extensions\ms-python.debugpy-2024.8.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydev_ipython\inputhook.py", line 540, in enable_gui
return gui_hook(app)
^^^^^^^^^^^^^
File "~\.vscode\extensions\ms-python.debugpy-2024.8.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydev_ipython\inputhook.py", line 176, in enable_qt
from pydev_ipython.qt_for_kernel import QT_API, QT_API_PYQT5
File "~\.vscode\extensions\ms-python.debugpy-2024.8.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydev_ipython\qt_for_kernel.py", line 116, in <module>
QtCore, QtGui, QtSvg, QT_API = load_qt(api_opts)
^^^^^^^^^^^^^^^^^
File "~\.vscode\extensions\ms-python.debugpy-2024.8.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydev_ipython\qt_loaders.py", line 276, in load_qt
if not can_import(api):
^^^^^^^^^^^^^^^
File "~\.vscode\extensions\ms-python.debugpy-2024.8.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydev_ipython\qt_loaders.py", line 152, in can_import
if not has_binding(api):
^^^^^^^^^^^^^^^^
File "~\.vscode\extensions\ms-python.debugpy-2024.8.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydev_ipython\qt_loaders.py", line 115, in has_binding
import imp
ModuleNotFoundError: No module named 'imp'
Backend QtAgg is interactive backend. Turning interactive mode on.
Мой код выглядит следующим образом (исходный код был обработан, код, который может вызвать эту ошибку, выглядит следующим образом):
import torch
import matplotlib.pyplot as plt
def main():
data = torch.arange(1, 10)
plt.plot(data)
plt.title('label name')
# ……
if __name__ == '__main__':
main()
При использовании plt.ion()
это не сработало.
Это может быть связано с неправильной настройкой бэкэнда matplotlib. В моем коде для бэкэнда matplotlib установлено значение «TkAgg», который, как правило, является наиболее широко поддерживаемым графическим бэкендом.
Я попробовал это в своем коде, и это сработало. Это может быть вызвано ошибкой vscode:
import matplotlib
matplotlib.use('TkAgg')
plt.ion()
Общий код выглядит следующим образом:
import torch
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('TkAgg')
plt.ion()
def main():
data = torch.arange(1, 10)
plt.plot(data)
plt.title('label name')
# ……
if __name__ == '__main__':
main()
Привет, Хуэй Сяо, рад узнать, что вы нашли решение этой проблемы! вы можете нажать «✔», чтобы пометить его как ответ и изменить его статус на Отвечено. Это также поможет другим решить подобную проблему. См. также могу ли я ответить на свой вопрос?.. , Напоминаю :)