Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan \"_tkinter.TclError: tiada nama paparan dan tiada $DISPLAY environment variable\" Isu untuk Skrip Python Menggunakan Matplotlib pada Pelayan?

Bagaimana untuk Menyelesaikan \"_tkinter.TclError: tiada nama paparan dan tiada $DISPLAY environment variable\" Isu untuk Skrip Python Menggunakan Matplotlib pada Pelayan?

Susan Sarandon
Susan Sarandonasal
2024-10-23 00:14:03542semak imbas

How to Solve the

_tkinter.TclError: tiada nama paparan dan tiada pembolehubah persekitaran $DISPLAY

Isu

Skrip Python menggunakan Matplotlib gagal pada pelayan dengan ralat " tiada nama paparan dan tiada pembolehubah persekitaran $DISPLAY" semasa menjana plot. Isu ini timbul kerana Matplotlib menggunakan bahagian belakang Xwindows secara lalai dan tidak serasi dengan persekitaran pelayan yang tidak mempunyai antara muka pengguna grafik (GUI).

Penyelesaian

Untuk menyelesaikan isu ini, tetapkan Matplotlib untuk menggunakan bahagian belakang bukan interaktif. Terdapat beberapa kaedah untuk mencapai ini:

  1. Tambah Kod pada Skrip: Pada permulaan skrip anda, sebelum mengimport matplotlib.pyplot, masukkan kod berikut:
<code class="python">import matplotlib
matplotlib.use('Agg')</code>
  1. Ubah suai Fail Konfigurasi Matplotlib: Dalam fail .config/matplotlib/matplotlibrc, tambah bahagian belakang baris: Agg. Ini akan mengarahkan Matplotlib untuk menggunakan bahagian belakang Agg bukan interaktif.
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
  1. Gunakan SSH dengan X Forwarding: Apabila menyambung ke pelayan melalui SSH, gunakan Pilihan -X untuk mendayakan pemajuan Xwindows. Ini akan membenarkan aplikasi GUI yang dijalankan pada pelayan untuk berinteraksi dengan persekitaran GUI pelanggan.
ssh -X remoteMachine.com
  1. Eksport Pembolehubah $DISPLAY: Tetapkan pembolehubah persekitaran $DISPLAY kepada nilai yang sesuai, seperti alamat IP dan nombor paparan mesin pelanggan.
export DISPLAY=mymachine.com:0.0

Dengan melaksanakan salah satu daripada penyelesaian ini, anda boleh mengkonfigurasi Matplotlib untuk beroperasi dalam persekitaran pelayan tanpa bergantung pada GUI.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \"_tkinter.TclError: tiada nama paparan dan tiada $DISPLAY environment variable\" Isu untuk Skrip Python Menggunakan Matplotlib pada Pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn