Home >Backend Development >Python Tutorial >How to Resolve \'_tkinter.TclError: no display name and no $DISPLAY environment variable\' Error When Using Matplotlib on a Server?
When executing a Python script involving Matplotlib on a server, you may encounter the error "_tkinter.TclError: no display name and no $DISPLAY environment variable." This error arises because Matplotlib defaults to using the Xwindows backend, which requires a graphical display environment. However, server environments often lack this capability.
To address this issue, you can instruct Matplotlib to utilize a non-interactive backend instead. Insert the following code at the beginning of your script, before importing pyplot:
<code class="python">import matplotlib matplotlib.use('Agg')</code>
Alternatively, you can add the following line to the .config/matplotlib/matplotlibrc file:
backend: Agg
This will configure Matplotlib to use the Agg backend, which does not require a graphical display.
Another option is to use ssh with X11 forwarding:
ssh -X remoteMachine
This command allows you to access Xwindows applications remotely.
Finally, you can set the DISPLAY environment variable:
<code class="bash">export DISPLAY=mymachine.com:0.0</code>
By specifying a valid display name, Matplotlib will be able to connect to a graphical display on another machine.
For further information, refer to the Matplotlib FAQ: https://matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server
The above is the detailed content of How to Resolve \'_tkinter.TclError: no display name and no $DISPLAY environment variable\' Error When Using Matplotlib on a Server?. For more information, please follow other related articles on the PHP Chinese website!