البرمجة

حل مشكلة PermissionError في Flask

لديك أمتيازات قراءة (read) وكتابة (write) لملفات ومجلدات المشروع، ولكن يبدو أنك تواجه مشكلة في الامتيازات التنفيذية (execute)، حيث يحتاج Flask إلى تصريح تنفيذي لتشغيل التطبيق على منفذ (port) 81. عندما تستخدم الأمر sudo، تقوم بتشغيل السكربت بصلاحيات المدير (root) التي تمنحك تصريح تنفيذي لذلك يعمل السكربت بنجاح.

لحل المشكلة بشكل دائم دون الحاجة لاستخدام sudo، يمكنك تغيير مالكية (ownership) الملف zbo.py إلى مالكية المستخدم الخاص بك وتعيين الأمتيازات التنفيذية لصاحب الملف. يمكنك استخدام الأمر التالي في سطر الأوامر (terminal):

sh
sudo chown $USER zbo.py chmod +x zbo.py

بعد تنفيذ هذه الأوامر، يجب أن يعمل التطبيق بدون الحاجة لاستخدام sudo.

المزيد من المعلومات

المشكلة التي تواجهها تعود إلى صلاحيات الملف zbo.py وليس صلاحيات المجلد الذي يحتوي عليه. عندما تقوم بتشغيل Flask على منفذ (port) أقل من 1024، مثل منفذ 81 في حالتك، يتطلب ذلك صلاحيات خاصة. في أنظمة التشغيل مثل macOS وLinux، يحتاج تشغيل التطبيق على هذه المنافذ إلى صلاحيات root.

حتى تتمكن من تشغيل التطبيق بدون استخدام sudo، يمكنك تغيير منفذ Flask إلى رقم أعلى من 1024، مثل 5000. بعد ذلك، يمكنك تشغيل التطبيق بشكل عادي بدون الحاجة إلى صلاحيات root. يمكنك تغيير السطر الذي يحدد منفذ التطبيق في ملف zbo.py إلى ما يلي:

python
app.run(host="127.0.0.1", port=5000, debug=True)

بعد تغيير المنفذ، قم بتشغيل التطبيق بدون sudo:

sh
python3 zbo.py

سيعمل التطبيق بشكل صحيح دون الحاجة إلى صلاحيات root.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر