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حذف شوند).