Python Troubleshooting

حل مشكلة خطأ إذن Python: [WinError 5] الوصول ممنوع

Spread the love

خطأ “PermissionError: [WinError 5] Access is denied” المزعج في بايثون هو صداع شائع، خاصةً على أنظمة ويندوز. يحدث هذا الخطأ عندما تحاول سكريبت بايثون الوصول إلى ملف أو مجلد دون الصلاحيات اللازمة. يقدم هذا الدليل عدة طرق لاستكشاف أخطاء هذا الخطأ وحله.

محتويات

فهم PermissionError: [WinError 5]

رسالة “[WinError 5] Access is denied” تشير صراحةً إلى أن حساب المستخدم الذي يشغل سكريبت بايثون يفتقر إلى الامتيازات المطلوبة للتفاعل مع ملف أو مجلد معين. هناك عدة عوامل قد تسبب ذلك:

  • ملفات/مجلدات للقراءة فقط: قد يكون الملف أو المجلد الهدف مُعيّنًا للقراءة فقط، مما يمنع الكتابة أو الحذف.
  • امتيازات مستخدم غير كافية: قد لا يمتلك حساب المستخدم الخاص بك الأذونات اللازمة (القراءة، الكتابة، التنفيذ) للملف أو المجلد.
  • تداخل برنامج مكافحة الفيروسات أو برنامج الأمان: قد يقوم برنامج الأمان بحظر الوصول إلى الملف.
  • قفل الملف بواسطة عملية أخرى: قد يستخدم تطبيق آخر الملف، مما يمنع سكريبتك من الوصول إليه.
  • مسارات ملفات غير صحيحة: قد تؤدي الأخطاء المطبعية أو المسارات غير الصحيحة في الكود الخاص بك إلى أخطاء رفض الوصول.

الطريقة الأولى: التحقق من أذونات الملف

ابدأ بالتحقق من أذونات الملف باستخدام مستكشف ملفات ويندوز:

  1. حدد موقع الملف أو المجلد الذي يسبب الخطأ.
  2. انقر بزر الماوس الأيمن واختر “خصائص”.
  3. انتقل إلى علامة التبويب “الأمان”. يعرض هذا المستخدمين والمجموعات التي لديها حق الوصول وأذوناتهم الخاصة (القراءة، الكتابة، التنفيذ).
  4. تحقق مما إذا كان حساب المستخدم الخاص بك يمتلك الأذونات اللازمة. إذا لم يكن كذلك، فهذا هو سبب الخطأ على الأرجح.

الطريقة الثانية: تشغيل بايثون كمسؤول

يمنح تشغيل السكريبت كمسؤول امتيازات مُرتفعة، مما قد يحل مشاكل الأذونات. ومع ذلك، استخدم هذا بحذر نظرًا للمخاطر الأمنية المحتملة. لا تستخدم هذه الطريقة إلا إذا فشلت الحلول الأخرى.

  1. حدد موقع سكريبت بايثون (ملف .py).
  2. انقر بزر الماوس الأيمن واختر “تشغيل كمسؤول”.
  3. أكد موجه التحكم في حساب المستخدم (UAC) إذا ظهر.

الطريقة الثالثة: تغيير ملكية الملف

إذا لم يكن حساب المستخدم الخاص بك هو مالك الملف أو المجلد، فمن الضروري تغيير الملكية. يتطلب هذا امتيازات المسؤول.

  1. حدد موقع الملف أو المجلد الذي يسبب المشكلة.
  2. انقر بزر الماوس الأيمن واختر “خصائص”.
  3. انتقل إلى علامة التبويب “الأمان” وانقر فوق “خيارات متقدمة”.
  4. انقر فوق “تغيير” في قسم “المالك”.
  5. حدد حساب المستخدم الخاص بك من القائمة (قد تحتاج إلى كتابة اسم المستخدم الخاص بك).
  6. انقر فوق “تطبيق” ثم “موافق” لحفظ التغييرات.

الطريقة الرابعة: تعديل أذونات الملف

حتى مع الملكية، قد تحتاج إلى منح حساب المستخدم الخاص بك صراحةً الأذونات اللازمة.

  1. حدد موقع الملف أو المجلد الذي يسبب المشكلة.
  2. انقر بزر الماوس الأيمن واختر “خصائص”.
  3. انتقل إلى علامة التبويب “الأمان” وانقر فوق “تحرير”.
  4. أضف حساب المستخدم الخاص بك (إذا لم يكن مدرجًا بالفعل) ومنح الأذونات المطلوبة (القراءة، الكتابة، التنفيذ).
  5. انقر فوق “تطبيق” ثم “موافق”.

استكشاف الأخطاء وإصلاحها ونصائح إضافية

إذا استمر الخطأ بعد تجربة هذه الطرق:

  • أعد تشغيل الكمبيوتر: هذا يمكن أن يحل قفل الملفات المؤقتة أو عدم اتساق النظام.
  • تحقق من برنامج مكافحة الفيروسات/برنامج الأمان: قم بتعطيل برنامج الأمان مؤقتًا لمعرفة ما إذا كان يتداخل. أعد تمكينه بعد ذلك.
  • تحقق من مسارات الملفات: تحقق من وجود أخطاء مطبعية أو مسارات غير صحيحة في كود بايثون الخاص بك. استخدم المسارات المطلقة لتجنب الغموض.
  • تشغيل من دليل مختلف: حاول تشغيل السكريبت من دليل لديك عليه تحكم كامل.
  • النظر في استخدام بيئة افتراضية: يمكن لبيئة افتراضية عزل تبعيات مشروعك وتجنب تعارضات الأذونات.

الأسئلة الشائعة

  • س: يعمل السكريبت الخاص بي على كمبيوتر آخر. لماذا لا يعمل على هذا الكمبيوتر؟ ج: تمتلك أجهزة الكمبيوتر المختلفة تكوينات حسابات مستخدم وإعدادات أمان مختلفة.
  • س: ما زلت أحصل على الخطأ بعد تجربة كل شيء. ج: قدم المزيد من التفاصيل: مقتطف الكود الذي يسبب الخطأ، ومسار الملف، وإصدار نظام التشغيل الخاص بك. سيساعد هذا في تشخيص المشكلة.
  • س: هل يمكنني القيام بذلك برمجيًا في بايثون؟ ج: نعم، باستخدام وحدات os و shutil. ومع ذلك، هذا أكثر تقدمًا ويتطلب معالجة دقيقة لتجنب المخاطر الأمنية. يُنصح عمومًا باستخدام الطرق اليدوية ما لم يكن لديك سبب وجيه لإدارة الأذونات برمجيًا.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *