在服务器上执行涉及 Matplotlib 的 Python 脚本时,您可能会遇到错误“_tkinter.TclError:没有显示名称,也没有 $DISPLAY 环境变量。”出现这个错误是因为Matplotlib默认使用Xwindows后端,这需要图形显示环境。但是,服务器环境通常缺乏此功能。
要解决此问题,您可以指示 Matplotlib 使用非交互式后端。在导入 pyplot 之前,在脚本开头插入以下代码:
<code class="python">import matplotlib matplotlib.use('Agg')</code>
或者,您可以将以下行添加到 .config/matplotlib/matplotlibrc 文件中:
backend: Agg
这将配置 Matplotlib 使用 Agg 后端,不需要图形显示。
另一个选项是使用 ssh 和 X11 转发:
ssh -X remoteMachine
此命令允许您访问远程 Xwindows 应用程序。
最后,您可以设置 DISPLAY 环境变量:
<code class="bash">export DISPLAY=mymachine.com:0.0</code>
通过指定有效的显示名称,Matplotlib 将能够连接到另一台计算机上的图形显示。
有关更多信息,请参阅 Matplotlib 常见问题解答:https://matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server
以上是在服务器上使用 Matplotlib 时如何解决'_tkinter.TclError:无显示名称且无 $DISPLAY 环境变量”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!