"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية حل مشكلة \"_tkinter.TclError: لا يوجد اسم عرض ولا يوجد متغير بيئة $DISPLAY\" لبرامج Python النصية باستخدام Matplotlib على الخادم؟

كيفية حل مشكلة \"_tkinter.TclError: لا يوجد اسم عرض ولا يوجد متغير بيئة $DISPLAY\" لبرامج Python النصية باستخدام Matplotlib على الخادم؟

تم النشر بتاريخ 2024-11-12
تصفح:862

How to Solve the \

_tkinter.TclError: لا يوجد اسم عرض ولا يوجد متغير بيئة $DISPLAY

المشكلة

تفشل البرامج النصية لـ Python التي تستخدم Matplotlib على الخادم مع ظهور الخطأ " لا يوجد اسم عرض ولا يوجد متغير بيئة $DISPLAY" عند إنشاء المخططات. تنشأ هذه المشكلة لأن Matplotlib يستخدم الواجهة الخلفية لـ Xwindows بشكل افتراضي وغير متوافق مع بيئات الخادم التي تفتقر إلى واجهة مستخدم رسومية (GUI).

الحل

لحل هذه المشكلة، قم بتعيين Matplotlib لاستخدام الخلفية غير التفاعلية. هناك عدة طرق لتحقيق ذلك:

  1. إضافة التعليمات البرمجية إلى البرنامج النصي: في بداية البرنامج النصي، قبل استيراد matplotlib.pyplot، قم بتضمين التعليمات البرمجية التالية:
import matplotlib
matplotlib.use('Agg')
  1. تعديل ملف تكوين Matplotlib: في الملف .config/matplotlib/matplotlibrc، أضف السطر الخلفي: Agg. سيؤدي هذا إلى توجيه Matplotlib لاستخدام الواجهة الخلفية Agg غير التفاعلية.
echo "backend: Agg" > ~/.config/matplotlib/matplotlibrc
  1. استخدم SSH مع X Forwarding: عند الاتصال بالخادم عبر SSH، استخدم الخيار -X لتمكين إعادة توجيه Xwindows. سيسمح هذا لتطبيقات واجهة المستخدم الرسومية (GUI) التي تعمل على الخادم بالتفاعل مع بيئة واجهة المستخدم الرسومية (GUI) الخاصة بالعميل.
ssh -X remoteMachine.com
  1. تصدير $DISPLAY Variable: قم بتعيين متغير البيئة $DISPLAY على القيمة المناسبة، مثل عنوان IP ورقم العرض لجهاز العميل.
export DISPLAY=mymachine.com:0.0

بواسطة وبتنفيذ أحد هذه الحلول، يمكنك تكوين Matplotlib للعمل في بيئة خادم دون الاعتماد على واجهة المستخدم الرسومية.

بيان الافراج أعيد طبع هذه المقالة على: 1729601178 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3