اگر اخیراً هنگام نصب بستههای پیپ در لینوکس با خطای «Externally-managed-Environment» مواجه شدهاید، در اینجا نحوه رفع آن آورده شده است.
اگر اغلب با پایتون کار میکنید و اخیراً به اوبونتو 23.04 یا فدورا نسخه 38 رفتهاید، به احتمال زیاد هنگام نصب بستهها با مدیر بسته پایتون، پیپ، با خطای «محیط مدیریتشده خارجی» مواجه شدهاید.
این می تواند ناامید کننده و کاملاً تعجب آور باشد زیرا این خطا هرگز در نسخه های قدیمی اوبونتو، فدورا و سایر توزیع ها ظاهر نمی شود. بیایید یاد بگیریم که دقیقاً چه چیزی باعث این خطا می شود و چگونه می توانید آن را به سرعت برطرف کنید.
چرا خطای “محیط مدیریت شده خارجی” رخ می دهد؟
آخرین نسخه های تمام توزیع های لینوکس استانداردهای تعریف شده در PEP-668 را اتخاذ می کنند. این تغییرات تضمین می کند که بسته های پیپ به طور پیش فرض در یک زمینه جهانی نصب نمی شوند.
این در تلاشی برای جلوگیری از تضاد بین مدیر بسته توزیع و ابزارهای مدیریت بسته پایتون اجرا شد. شما می توانید در مورد جزئیات در اسناد رسمی PEP-668 اطلاعات کسب کنید. اگر میخواهید این مکانیسم را برگردانید یا لغو کنید، میتوانید از سه روش استفاده کنید.
1. فایل “EXTERNALLY-MANAGED” را حذف کنید
این ساده ترین راه حل برای خطای پیپ “مدیریت خارجی” است. تنها کاری که باید انجام دهید این است که به /usr/lib/python3.xx بروید و فایل EXTERNALLY-MANAGED موجود در فهرست را حذف کنید. در اینجا دستوراتی برای انجام این کار وجود دارد:
cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED
این تمام کاری است که برای رفع خطا باید انجام دهید. اگر تصمیم به بازیابی این مکانیسم دارید، دوباره همان فایل را با دستور لمسی ایجاد کنید:
sudo touch EXTERNALLY-MANAGED
اکنون باید بتوانید بسته ها را به صورت یکپارچه با pip یا pip3 نصب کنید.
2. از محیط های مجازی برای نصب بسته های پیپ استفاده کنید
روش دیگری که می توانید در پیش بگیرید استفاده از محیط های مجازی برای پروژه پایتون است. محیط های مجازی راهی عالی برای جداسازی بسته های خاص برنامه از سیستم عامل هستند و همچنین به شما این امکان را می دهند که پروژه خود را به خوبی سازماندهی کنید.
در اینجا نحوه ایجاد یک محیط مجازی و نصب بسته ها با pip آورده شده است:
- ابتدا محیط مجازی را با python3 -m venv venv ایجاد کنید
- فایل activate را در داخل دایرکتوری bin با استفاده از دستور source: source venv/bin/activate منبع کنید
python3 -m venv venv
source venv/bin/activate
درخواست پوسته شما باید با نام محیط مجازی به روز شود. اکنون می توانید هر بسته پایتونی را که می خواهید نصب کنید.
همانطور که می بینید، بسته openai Python در ابتدا قابل نصب نبود اما پس از ایجاد و تغییر به یک محیط مجازی، بدون نقص نصب می شود.
3. از pipx برای نصب بسته های پایتون استفاده کنید
pipx ابزاری برای نصب بسته های پایتون در محیط های مجازی و ایزوله است. مراحلی مانند ایجاد محیط های مجازی برای هر بسته و ایجاد پیوندهای نمادین به بسته های موجود در پوشه .local/bin را خودکار می کند تا بتوانید هر بسته را از پوسته همیشه فراخوانی کنید.
استفاده از pipx برای نصب بستهها به شما کمک میکند از خطای «Externally-managed-Evironment» در هنگام نصب بستهها در محیطهای مجازی جلوگیری کنید. برای استفاده از pipx، ابتدا آن را با مدیر بسته پیش فرض توزیع خود نصب کنید.
در مورد مشتقات اوبونتو/دبیان:
sudo apt-get install pipx
در سیستم های مبتنی بر Arch:
sudo pacman -S pipx
در Fedora/CentOS/RHEL:
sudo dnf install pipx
هنگامی که pipx را نصب کردید، از آن درست مانند استفاده از pip برای نصب بسته ها استفاده کنید. در اینجا یک دستور نمونه وجود دارد:
pipx install openai
برای کسب اطلاعات بیشتر در مورد pipx می توانید با استفاده از دستور man به صفحه man آن مراجعه کنید.
اکنون می دانید که چگونه خطای “مدیریت خارجی” را برطرف کنید
پس از رفع خطای “Externally-managed-Evironment”، باید بتوانید به کار بر روی پروژه خود یا تمرین برنامه نویسی عمومی پایتون ادامه دهید. اگر روی دومی تمرکز کرده اید، ممکن است بخواهید روش های مختلف گیمیفی شده برای یادگیری برنامه نویسی را بررسی کنید که به شما کمک می کند پایتون یا هر زبانی را بسیار سریعتر به روشی عملی و مفید یاد بگیرید.