ویرگول
ورودثبت نام
keyaru
keyaruشفادهنده ای که خودشو نتونست شفا بده
keyaru
keyaru
خواندن ۵ دقیقه·۲ روز پیش

نصب پکیج های پایتون در زمان اینترنت ملی

توی کل جهان وقتی که میخواهید یه پکیج پایتونی رو نصب کنید خیلی ساده با دستور pip install name پکیج مورد نظر خودتونو نصب میکنید

ما توی این جای عجیب که گاهی از زندگی عادی هم محرومیم همیشه نمیتونیم به سادگی این کارو کنیم و با تحریم و فیلتر و... روبرو میشیم و گاها مجبوریم از ابزار های رفع تحریم و فیلتر استفاده کنیم

البته.... قبل از اینکه حتی اینم ازمون بگیرن.

با قطع دسترسی به اینترنت بین الملی، دسترسی به pypi(Python Package Index) هم از بین میره و حتی از نصب یه پکیج ساده پایتونی از محروم میشیم، پایتون محبوب ترین زبان برنامه جهان در حل حاظره و بیشترین تعداد توسعه دهنده در جهان و ایران رو داره؛ این یعنی با دسترسی نداشتن به pypi امکان آموزش و یادگیری فریم ورک های پایتونی، توسعه اپلیکیشن های پایتونی و بک اند های پایتونی و حتی توسعه شبکه ملی اطلاعات هم در زمان اینترنت ملی از بین میره یا با چالش جدی روبرو میشه؛ اما چاره چیه؟

توی پست قبلی چندین میرور و هوش مصنوعی و... معرفی کردم که بتونید توی زمان اینترنت ملی همچنان به داده هایی که بهشون نیاز دارید دسترسی داشته باشید؛ توی این فرسته میخام استفاده از این میرور ها برای نصب پکیج های پایتونی رو بهتون آموزش بدم

میرور یا آینه چیست؟

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

برای ساخت میرور های پایتونی از ابزاری به اسم Bandersnatch استفاده میشه که بهمون اجازه میده کل پکیج های داخل مخزن رو به فضای لوکال یا سرور خودمون بیاریم و بتونیم بروز نگهشون داریم به صورت دوره ای؛ اما خوب ما که همچنان به اینترنت آزاد دسترسی نداریم که بتونیم این کارو کنیم و همچنین حجم کل پکیج ها به ترابایت ها میرسه و حتی اگر دسترسی به اینترنت آزاد داشته باشیم هم برای یک توسعه دهنده ساده راه منطقی ای به نظر نمیرسه

اما خوشبخاته(شاید!؟) میرور هایی وجود که از قبل توسط سرویس های هاستینگ و... روی دیتاسنتر های داخلی ساخته شده و ما میتونیم توی زمان قطعی اینترنت از اون ها برای نصب پکیج های پایتونی خودمون استفاده کنیم

چطوری از میرور های داخلی برای نصب پکیج های پایتون استفاده کنیم؟

اگر بخواهید فقط یک پکیج رو با استفاده از میرور خاصی نصب کنید کافیه اون رو با فلگ -i به pip بدید تا بجای مخزن رسمی از میرور شما استفاده کنه

pip install -i https://mirror-pypi.runflare.com/simple django

اینجا از مخزنی که توسط رانفلر ارئه شده استفاده کردیم و جنگو رو با اینترنت ملی نصب کردیم

چطوری میرور هارو به صورت گلوبال تنظیم کنیم؟

اگر میخواهید به صورت گلوبال میرور هارو ست کنید تا نیاز نباشه توی هر نصب میرور رو بدید کافیه میرور هارو توی کانفیگ گلوبال pip ست کنید و این کار با دستور زیر قابل انجامه

pip config --user set global.index https://mirror-pypi.runflare.com/simple pip config --user set global.index-url https://mirror-pypi.runflare.com/simple pip config --user set global.trusted-host mirror-pypi.runflare.com

با دستور بالا میرور رانفلر رو برای pip به صورت گلوبال برای یوزر خودمون ست کردیم و دیگه نیازی نیست توی هر دستور با فلگ -i ایندکس خودمونو بدیم

برای چک کردن درست ست شدن کافیه دستور زیر رو اجرا کنید

pip config list

حالا کافیه به صورت عادی پکیج خودتونو نصب کنید

pip install django

چند تا میرور مختلف برای استفاده

چندین میرور مختلف برای استفاده وجود داره که میتونید استفاده کنید

https://mirror-pypi.runflare.com/simple : مخزن رانفلر که سرعت خوبی داره و بیشتر پکیج های معروف رو داره و من هرچی خواستم داشت

https://archive.ito.gov.ir/python : مخزن پایتون ارائه شده توسط سازمان فناوری اطلاعات ایران و پکیج های جدیدتر رو نداره

https://pypi.jamko.ir/simple : مخزن پایتونی که اینم توسط سازمان فناوری اطلاعات ایران نگهداری میشه و پکیج های کمتری داره

میرور های مختلف برای مخزن های دیگه رو توی پست قبلی میتونید پیدا کنید

اگر توی نصب پکیج هایی که وابستگی زیاد دارن به مشکل خوردید میتونید وابستگی هاشو جدا نصب کنید؛ مثل مشکلی که برای من موقع نصب flask پیش اومد

مشکل اتصال برای نصب markupsafe موقع نصب flask
مشکل اتصال برای نصب markupsafe موقع نصب flask

اگر با همچنین مشکلی برخوردید کافیه پکیجی که خطا میده رو جدا نصب کنید:

pip install markupsafe

بعدش پکیج اصلی که قصد نصبش رو داشتید نصب کنید:

pip install flask

دانلود پکیج های پایتون و نصب افلاین پکیج ها

از اونجایی که توی جای عجیبی زندگی میکنیم که حتی ممکنه گاهی به همین شبکه داخلی هم دسترسی نداشته باشیم یا با اختلال و قطعی و... روبرو بشیم؛ شاید بهتر باشه پکیج هایی که روزانه باهاشون سر و کار دارید رو دانلود کنید و توی هارد خودتون یا فلش و... ذخیره کنید که حتی توی نبود اینترنت هم بتونید اون هارو نصب کنید و استفاده کنید

برای دانلود یه پکیج پایتون روی فضای لوکال خودتون کافیه از دستور زیر استفاده کنید:

pip download httpx -d packages

با این دستور پکیج httpx رو توی پوشه packages(که خودکار در پوشه کاری فعلیتون ساخته میشه) دانلود میکنید و در آینده میتونید با دستور زیر از همون پوشه دوباره نصبش کنید

pip install --no-index --find-links=packages httpx

همچنین میتونید این دستورات رو با فلگ -r هم استفاده کنید و نیازی به دانلود دونه دونه نباشه و همه پکیج هارو از فایل requirements.txt دانلود و دوباره نصب کنید:

pip download -r requirements.txt -d packages pip install --no-index --find-links=packages -r requirements.txt

اگر میخواهید کل پکیج هایی که در حال حاظر نصب دارید رو دانلود کنید کافیه دستور زیر رو اجرا کنید:

pip freeze > requirements.txt pip download -r requirements.txt -d packages

با این کار حتی اگر اینترنت کاملا هم قطع بشه شما با داشتن این پوشه میتونید همچنان پکیج های خودتونو همچنان نصب کنید.

امیدوارم که این فرسته براتون مفید بوده باشه و همچنان اگر برخی بزارن به توسعه و یادگیری روزانتون ادامه بدید؛ همچنین توصیه میکنم حتما وقتی که به اینترنت عادی دسترسی داشتید برای خودتون از هر چیزی که براتون مهمه آرشیو جمع آوری کنید و امیدوارم هیچوقت نیاز به استفاده ازش نداشته باشید.

اینترنت ملیبرنامه نویسیپایتونpipقطعی اینترنت
۱۳
۰
keyaru
keyaru
شفادهنده ای که خودشو نتونست شفا بده
شاید از این پست‌ها خوشتان بیاید