احمد رضا سرخیل
احمد رضا سرخیل
خواندن ۲ دقیقه·۵ سال پیش

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


صورت مساله: می خواهم اجرای یک پروژه را به روی سروری منتقل کنم، به دلیل عدم دسترسی سرور به اینترنت پکیج های برنامه دانلود نمی شوند و پروژه نیز اجرا نمی شود

راه حل: فرض میکنیم روی لپتاپ شخصی دسترسی به اینترنت داریم و تمام Toolsها و Libهای مورد استفاده برنامه رو بایستی منتقل کنیم روی سرور، بدون استفاده از اینترنت در مقصد

چی یاد میگیریم:

  • نصب pip و SetupTools به صورت آفلاین نصب می شود؟
  • فایل .whl چیست و چگونه نصب می شود
  • کار با پکیج ها در پایتون

پیش نیازها:

  • در این مقاله فرض بر این است که محیط کار برنامه ویندوز می باشد و شما دسترسی به اینترنت به همراه فیلتر شکن در یکی از PCها دارید ولی محدودیتی در استفاده از ابزار نیست این سناریو با Anaconda و Spyder هم جواب میده ولی برای مثال پایتون استاندارد و PyCharm رو توضیح میدم.
  • دستورات را در قسمت Terminal نرم افزار PyCharm یا Command Prompt ویندوز می توانید اجرا کنید
  • دانلود پایتون (نسخه مخصوص ویندوز) از اینجا و نسخه رایگان PyCharm از اینجا
  • در صورتی که Python را قبل از PyCharm نصب نمایید به طور پیش فرض تنظیمات Interpreter درست خواهد بود.

مراحل انجام:

دستور زیر برای استخراج لیست پکیج(Lib)های نصب شده در پروژه­ی باز یا Virtual Environment فعال می باشد:

pip freeze > requirements.txt

PIPچیست ؟

مخفف pip installs packages و به عنوان سیستم مدیریت استفاده و نصب پکیج های نوشته شده به زبان پایتون به شمار می­رود. بسیاری از پکیج ها و بسته های وابسته به آنها را می توان در سایت فهرست بسته ­های پایتون (Python Package Index (PyPI به این آدرس یافت

دستور pip freeze > requirements.txt باعث ایجاد فایلی متنی مشابه تصویر زیر از فهرست پکیج ­ها و نسخه ­ آنها می­شود

حال به کمک لیست پکیج ها اقدام به دانلود آنها می نماییم، در این مرحله نیازی به اینترنت ندارید

در نظر داشته باشید فایلهای مختلفی از نوع zip ،tar.gz و whl در مسیری که دستور را اجرا نمی نمایید به وجود خواهند آمد.

پکیج های دانلود شده را کنار پروژه­ ی مورد نظر به مسیر دلخواه روی سروری که اینترنت ندارد کپی کنید

قبل از اینکه بتوانیم نصب پکیج ها را آغاز کنیم نیاز داریم تا PIP را نصب کنیم برای این منظور مراحل زیر را دنبال کنید:

1- ابتداPip و setuptools را از اینترنت دانلود کنید:

https://pypi.python.org/pypi/setuptools
https://pypi.python.org/pypi/pip

2- فایلهای دانلود شده را به سرور منتقل و دستورات زیر را در مسیری که فایل اجرایی پایتون وجود دارد اجرا نمایید:

  • دقت نمایید در صورتی که چند پایتون همزمان نصب داشته باشید لازم است تا این مرحله را برای هر کدام مستقلا اجرا نمایید
python pip-19.2.3-py2.py3-none-any.whl/pip install --no-index setuptools-41.2.0-py2.py3-none-any.whl
python pip-19.2.3-py2.py3-none-any.whl/pip install --no-index pip-19.2.3-py2.py3-none-any.whl
  • در نظر داشته باشید نحوه رفتار با فایلهای whlدرست مثل فایل zip می باشد

در انتها به کمک PIP نصب پکیج ها را به صورت آفلاین انجام می دهیم:

1- نصب پکیج تکی

pip install --no-index --find-links=c:/python/lib pandas
نصب پکیج تکی
نصب پکیج تکی

2- نصب پکیج به صورت دسته ایی به کمک فایل requirements.txt که در مراحل قبلی آن را ایجاد کردیم:

pip install --no-index --find-links=c:/python/lib -r requirements.txt

یکی دیگر از کاربردهای این مقاله رو می توانید از لینک زیر مطالعه بفرمایید:

https://websauna.org/docs/tutorials/deployment/freeze.html

منابع استفاده شده:

https://stackoverflow.com/questions/36132350/install-python-wheel-file-without-using-pip

https://support.telefonicaopencloud.com/en-us/devg/sdk/en-us_topic_0107955974.html

https://pip.pypa.io/en/stable/reference/pip_freeze/

pythonPythonerizationBoringStuffautmationdevopspip
من را در لینکدین دنبال کنید : https://www.linkedin.com/in/ahmad-reza-sarkhail-43588695
شاید از این پست‌ها خوشتان بیاید