Ralat: tiada nama paparan dan tiada pembolehubah persekitaran $DISPLAY
Ralat ini berlaku apabila Matplotlib, perpustakaan Python untuk visualisasi data, cuba untuk gunakan bahagian belakang yang memerlukan output grafik tetapi tidak dapat mencari persekitaran paparan yang sah.
Matplotlib lalai menggunakan bahagian belakang Xwindows, yang memerlukan pelayan X dan pembolehubah persekitaran $DISPLAY untuk ditetapkan. Dalam senario yang diberikan, ralat menunjukkan bahawa nama paparan mahupun pembolehubah $DISPLAY tidak tersedia pada pelayan tempat skrip Python sedang dilaksanakan.
Penyelesaian:
Untuk menyelesaikan isu ini, anda boleh menetapkan Matplotlib untuk menggunakan bahagian belakang bukan interaktif yang tidak memerlukan output grafik. Tambahkan baris berikut pada permulaan skrip anda, sebelum mengimport matplotlib:
<code class="python">import matplotlib matplotlib.use('Agg')</code>
Ini akan mengkonfigurasi Matplotlib untuk menggunakan bahagian belakang Agg, iaitu bahagian belakang bukan interaktif yang menjana output dalam format fail, seperti sebagai PNG atau PDF.
Sebagai alternatif, anda boleh menambah baris berikut pada fail .config/matplotlib/matplotlibrc anda untuk menjadikan hujung belakang tidak interaktif sebagai lalai:
backend: Agg
Jika anda mempunyai pelayan X tersedia pada mesin jauh, anda boleh menggunakan arahan SSH berikut untuk memajukan sambungan X11:
<code class="bash">ssh -X remoteMachine.com</code>
Ini akan menetapkan pembolehubah persekitaran $DISPLAY pada mesin jauh, membenarkan Matplotlib menggunakan hujung belakang Xwindows .
Akhir sekali, anda boleh cuba mengeksport pembolehubah $DISPLAY secara manual:
<code class="bash">export DISPLAY=mymachine.com:0.0</code>
Ini akan menetapkan pembolehubah $DISPLAY kepada mesin jauh dan nombor paparan yang ditentukan.
Untuk mendapatkan maklumat lanjut tentang ralat ini dan kemungkinan penyelesaian, rujuk dokumentasi Matplotlib: https://matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-server
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Tiada Nama Paparan dan Tiada Pembolehubah Persekitaran $DISPLAY' dalam Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!