Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membetulkan Ralat 'Menjana PNG dengan matplotlib apabila DISPLAY tidak ditentukan'?

Bagaimana untuk Membetulkan Ralat 'Menjana PNG dengan matplotlib apabila DISPLAY tidak ditentukan'?

Patricia Arquette
Patricia Arquetteasal
2024-12-01 16:10:12191semak imbas

How to Fix the

Cara Menyelesaikan Ralat "Menjana PNG dengan matplotlib apabila DISPLAY tidak ditentukan"

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!

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