Ralat ini timbul apabila cuba menjana imej PNG menggunakan matplotlib apabila persekitaran DISPLAY pembolehubah tidak ditetapkan atau tidak ditentukan. Ini biasanya berlaku apabila menjalankan matplotlib dalam persekitaran tanpa kepala seperti pelayan atau skrip kelompok.
Punca utama ralat ini ialah matplotlib memilih bahagian belakang yang memerlukan paparan Windows X secara lalai. Untuk menyelesaikan masalah ini, anda mesti secara eksplisit memaksa matplotlib menggunakan bahagian belakang yang tidak memerlukan X Windows.
Penyelesaian:
Untuk menyelesaikan isu ini, masukkan kod berikut sebelum mengimport mana-mana modul matplotlib lain:
import matplotlib # Force matplotlib to use a backend that does not require X Windows. matplotlib.use('Agg')
Ini akan menetapkan hujung belakang kepada Agg Bahagian belakang (Anti-Grain Geometry), yang direka untuk menjana imej tanpa memerlukan paparan Windows X.
Penyelesaian Alternatif:
Penyelesaian alternatif adalah dengan menetapkan bahagian belakang terus dalam fail konfigurasi .matplotlibrc. Fail ini biasanya terletak dalam direktori ~/.config/matplotlib. Tambahkan baris berikut pada fail:
backend: Agg
Ini akan menetapkan hujung belakang secara kekal kepada Agg untuk semua tika matplotlib.
Penting
Ingat bahawa penyelesaian ini mesti dilaksanakan sebelum anda mengimport mana-mana modul matplotlib lain, seperti pyplot. Jika tidak, matplotlib sudah pun memilih bahagian belakangnya dan arahan use('Agg') tidak akan memberi kesan.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Menjana PNG dengan matplotlib apabila DISPLAY tidak ditentukan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!