ensurepip --- بوت‌استرپینگ نصب‌کننده‌ی pip

اضافه شده در نسخه‌ی 3.4.

کد منبع: Lib/ensurepip


بسته‌ی ensurepip پشتیبانی برای بوت‌استرپ کردن (bootstrapping) نصب‌کننده‌ی pip در یک نصب پایتون موجود یا محیط مجازی را فراهم می‌کند. این رویکرد بوت‌استرپ نشان‌دهنده‌ی این واقعیت است که pip پروژه‌ای مستقل با چرخه‌ی انتشار خود است و آخرین نسخه‌ی پایدار موجود همراه با انتشارهای نگهداشت و ویژگی مفسر مرجع CPython گنجانده شده است.

در بیشتر موارد، کاربران نهایی پایتون نباید نیازی به فراخوانی مستقیم این ماژول داشته باشند (زیرا pip باید به‌طور پیش‌فرض بوت‌استرپ (bootstrapped) شده باشد)، اما ممکن است در صورتی که از نصب pip هنگام نصب پایتون (یا هنگام ایجاد یک محیط مجازی) صرف‌نظر شده باشد، یا پس از حذف صریح pip، به فراخوانی آن نیاز باشد.

توجه

این ماژول به اینترنت دسترسی ندارد. تمام کامپوننت‌های مورد نیاز برای بوت‌استرپ (bootstrap) pip به‌عنوان بخش‌های داخلی بسته گنجانده شده‌اند.

این یک ماژول اختیاری است. اگر این ماژول در نسخه CPython شما وجود ندارد، برای مستندات به توزیع‌کننده خود مراجعه کنید (یعنی کسی که پایتون را در اختیار شما قرار داده است). اگر شما توزیع‌کننده هستید، نیازمندی‌های ماژول‌های اختیاری را ببینید.

همچنین ملاحظه نمائید

نصب ماژول‌های پایتون

راهنمای کاربر نهایی برای نصب بسته‌های پایتون

PEP 453: بوت‌استرپ صریح pip در نصب‌های پایتون

مبانی و مشخصات اولیه‌ی این ماژول.

دسترس‌پذیری: not Android, not iOS, not WASI.

این ماژول در سکوهای موبایل یا سکوهای WebAssembly پشتیبانی نمی‌شود.

رابط خط فرمان

رابط خط فرمان با استفاده از سوئیچ -m مفسر فراخوانی می‌شود.

ساده‌ترین فراخوانی ممکن به این صورت است:

python -m ensurepip

این فراخوانی در صورتی pip را نصب می‌کند که پیش‌تر نصب نشده باشد، اما در غیر این صورت هیچ کاری انجام نمی‌دهد. برای اطمینان از اینکه نسخه نصب‌شده pip حداقل به‌اندازه نسخه موجود در ensurepip جدید باشد، گزینه --upgrade را به کار ببرید:

python -m ensurepip --upgrade

به‌طور پیش‌فرض، pip در محیط مجازی فعلی (اگر یکی فعال باشد) یا در بسته‌های سایت سیستم (اگر هیچ محیط مجازی فعالی وجود نداشته باشد) نصب می‌شود. محل نصب را می‌توان از طریق دو گزینه اضافی خط فرمان کنترل کرد:

--root <dir>

pip را نسبت به پوشه‌ی ریشه‌ی داده‌شده نصب می‌کند، نه نسبت به ریشه‌ی محیط مجازی فعال کنونی (در صورت وجود) یا ریشه‌ی پیش‌فرض برای نصب پایتون کنونی.

--user

pip را به‌جای نصب به‌صورت سراسری برای نصب پایتون جاری، در پوشه‌ی site packages کاربر نصب می‌کند (این گزینه در یک محیط مجازی فعال مجاز نیست).

به‌طور پیش‌فرض، اسکریپت‌های pipX و pipX.Y نصب خواهند شد (که X.Y نشان‌دهنده‌ی نسخه‌ی پایتون استفاده‌شده برای فراخوانی ensurepip است). اسکریپت‌های نصب‌شده را می‌توان از طریق دو گزینه‌ی اضافی خط فرمان کنترل کرد:

--altinstall

اگر نصب جایگزینی درخواست شود، اسکریپت pipX نصب نخواهد شد.

--default-pip

اگر نصب «pip پیش‌فرض» درخواست شود، اسکریپت pip علاوه بر دو اسکریپت معمول نصب خواهد شد.

ارائه هر دو گزینه‌ی انتخاب اسکریپت، باعث پرتاب یک استثنا می‌شود.

API ماژول

ensurepip دو تابع را برای استفاده‌ی برنامه‌ای ارائه می‌دهد:

ensurepip.version()

رشته‌ای را برمی‌گرداند که نسخه‌ی در دسترس pip را مشخص می‌کند؛ این نسخه هنگام بوت‌استرپ یک محیط نصب خواهد شد.

ensurepip.bootstrap(root=None, upgrade=False, user=False, altinstall=False, default_pip=False, verbosity=0)

pip را در محیط فعلی یا تعیین‌شده بوت‌استرپ (bootstrap) می‌کند.

root یک پوشه ریشه جایگزین را مشخص می‌کند که نصب نسبت به آن انجام می‌شود. اگر root برابر None باشد، نصب از محل پیش‌فرض نصب برای محیط فعلی استفاده می‌کند.

upgrade مشخص می‌کند که آیا یک نصب موجود از نسخه‌ی قدیمی‌تر pip باید به نسخه‌ی در دسترس ارتقا یابد یا خیر.

user نشان می‌دهد که آیا باید از طرح‌واره کاربر به‌جای نصب به‌صورت سراسری استفاده شود.

به‌طور پیش‌فرض، اسکریپت‌های pipX و pipX.Y نصب خواهند شد (که X.Y نشان‌دهنده‌ی نسخه‌ی جاری پایتون است).

اگر altinstall تنظیم شده باشد، pipX نصب نخواهد شد.

اگر default_pip تنظیم شده باشد، آنگاه pip علاوه بر ۲ اسکریپت معمولی نصب خواهد شد.

تنظیم همزمان altinstall و default_pip باعث پرتاب ValueError می‌شود.

verbosity سطح خروجی به sys.stdout از عملیات بوت‌استرپ را کنترل می‌کند.

یک رویداد حسابرسی ensurepip.bootstrap را با آرگومان root پرتاب می‌کند.

توجه

فرایند بوت‌استرپ بر هر دو sys.path و os.environ عوارض جانبی دارد. در عوض، فراخوانی رابط خط فرمان در یک زیرفرایند امکان اجتناب از این عوارض جانبی را فراهم می‌کند.

توجه

فرایند بوت‌استرپ ممکن است ماژول‌های اضافی مورد نیاز pip را نصب کند، اما سایر نرم‌افزارها نباید فرض کنند که آن وابستگی‌ها همیشه به‌صورت پیش‌فرض موجود خواهند بود (زیرا ممکن است آن وابستگی‌ها در نسخه‌ای آینده از pip حذف شوند).