"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إنشاء صور PNG باستخدام Matplotlib عندما يكون متغير DISPLAY غير محدد؟

كيفية إنشاء صور PNG باستخدام Matplotlib عندما يكون متغير DISPLAY غير محدد؟

تم النشر بتاريخ 2025-01-19
تصفح:165

How to Generate PNG Images with Matplotlib When the DISPLAY Variable Is Undefined?

إنشاء PNG باستخدام Matplotlib عندما يكون DISPLAY غير محدد

في Python، matplotlib هي مكتبة شائعة لإنشاء تصورات ثابتة ومتحركة وتفاعلية . ومع ذلك، عندما لا يتم تعيين DISPLAY في البيئة، فإن محاولة إنشاء صورة PNG باستخدام matplotlib يمكن أن تؤدي إلى رسالة الخطأ "لا يوجد اسم عرض ولا يوجد متغير بيئة DISPLAY $." يحدث هذا الخطأ لأن الواجهة الخلفية الافتراضية لـ matplotlib تتطلب خادم X، وهو غير متوفر في بيئات معينة.

لمعالجة هذه المشكلة، يجب علينا تعيين matplotlib بشكل صريح لاستخدام الواجهة الخلفية Agg (هندسة مكافحة الحبوب). Agg عبارة عن واجهة خلفية غير تفاعلية ولا تتطلب خادم X، مما يسمح بإنشاء صور في بيئات بدون رأس.

إليك كيفية تنفيذ هذا الحل:

import matplotlib
# Force matplotlib to use the Agg backend
matplotlib.use('Agg')

ضع هذا الرمز في بداية البرنامج النصي الخاص بك، قبل استيراد أي وحدات فرعية أخرى من matplotlib مثل pyplot. من خلال تعيين الواجهة الخلفية على Agg قبل استيراد pyplot، فإننا نضمن أن matplotlib لا يحاول استخدام الواجهة الخلفية باستخدام X.

بدلاً من ذلك، يمكنك تعيين الواجهة الخلفية بشكل دائم عن طريق تعديل ملف التكوين .matplotlibrc الخاص بك. في قسم الواجهة الخلفية، قم بتعيين ما يلي:

backend : Agg

يلغي هذا الإعداد العام الحاجة إلى تحديد الواجهة الخلفية بشكل صريح في البرامج النصية الخاصة بك.

بمجرد تحديد الواجهة الخلفية المناسبة بعد تهيئته، يمكنك إنشاء صور PNG باستخدام matplotlib دون مواجهة الخطأ "DISPLAY غير محدد".

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3