تثبيت وحذف حزم بايثون بواسطة أداة pip

خطوة بخطوة نحو تعلم أساسيات التعامل مع أداة  إدارة الحزم pip بمهارة ومع الأمر Pip سنتعلم كيفية تثبيت وحذف مختلف حزم بايثون من PyPI.

يقترب بايثون من العقد الثالث منذ نشأته وعبر كل هذ السنين ساهم الكثير من المستخدمين في بناء العديد من حزم بايثون التي تؤدي وظائف وعمليات محددة.

إلى غاية كتابة هذه الأسطر هناك مايقارب 122 ألف حزمة موجودة على موقع PyPI وهي إختصار ل Python Package Index والتي تعني فهرس حزم بايثون وهو مستودع مركزي يحتوي على الوحدات و الحزم المجانية للغة بايثون وهو مايجعل العمل مع بايثون أمر جيد ومريح .

كما ترى فإن معظم المبرمجين بلغة بايثون يقومون ببناء حزم بايثون على إختلاف أهدافها ، ويقومون بتحديثها بما يناسب التطبيقات والبرامج الحديثة .

هناك إحتمال أن تجد أكثر من حزمة لنفس الغرض فقط عليك إختيار مايناسب غرضك من البرمجة (سنتطرق لذلك).

ولكي يكون لدينا مثال نعمل عليه سنعمل على حل بعض إستفسارات زوار موقع بايثون العربي والذي يتسأل عن إمكانية إستخدام الرموز التعبيرية في تطبيقات بايثون وهل توجد مكتبات أو حزم تساعد على ذلك .

دعونا نكتشف ذلك :

إليك ما سنغطيه في هذا الدرس :

  1. البحث عن الحزم
  2. مالذي يجب أن نتأكد منه قبل إختيار الحزم
  3. تثبيت الحزمة بواسطة PIP
  4. إلغاء تثبيت حزم بايثون بواسطة PIP

البحث عن حزم بايثون  

دعونا نستعمل الرموز التعبيرية كمثال، ولقد وجدنا حزم متعلقة بالرموز التعبيرية على موقع pypi بعد البحث عن emoji عن طريق صندوق البحث الموجود على الموقع نفسه.

وإلى غاية كتابتنا لهذه الأسطر وجدنا حوالي 94 حزمة متعلقة بالرموز التعبيرية وإليكم قائمة تحتوي على بعض منها

لاحظ العمود الأوسط بعنوان Weight الذي يعتبر الجزء الأساسي من المعلومات فقيمة الوزن هو الأساس في سجل البحث ، وعليها يقوم الموقع بترتيب الحزم المشابهة و إدراجها وفق لذلك.

ولكن هل يعني أن الحزمة الموجودة في الأعلى هي الأفضل ؟

لا ليس بالضرورة بل كل مافي الأمر أن مبرمجي تلك الحزم يعانون من الكسل فلا يقومون بملأ الحقول كاملة فيتم تريتبها وفق ذلك (واحد من الأسباب فقط.)

عملية البحث عن الحزم مازالت جارية بين مختلف الحزم المعروضة حتى نجد الحزمة المطلوبة إستنادا على الإستخدام النهائي الذي نريده وحتى هذه اللحظة السؤال الرئيسي هو :

ماهي البيئة التي تريد تنفيذ الرموز التعبرية عليها: تطبيق يعمل على الطرفية (سطر الأوامر) أو ربما تطبيق ويب (جانغو إلخ….)

إذا كنت تريد إستعمال الرموز التعبيرية على تطبيق جانغو  فمن الأفضل أن تستعمل الحزمة رقم 10 package django-emoji 2.2.0

ولكن في حالتنا نحن الأن سنقوم سنفترض أننا نملك تطبيق يعمل على واجهة الأوامر ونريد إستعمال الرموز التعبيرية على الطرفية .

دعونا نتفحص الحزمة الأولى الموجودة في القائمة بالضغط package emoji 0.4.5

مالذي تبحث عنه في حزمة بايثون ؟

إليك أهم الخصائص الذي ينبغي توفرها في أي حزمة قبل تحميلها وإستعمالها :

  1. الوثائق اللائقة : بمجرد قراءتك للوثائق يمكنك التعرف هل لهذه الحزمة تفي بالغرض أم لا .
  2. النضج والإستقرار:حزمة لديها بعض الوقت في السوق وأثبتت أنها يمكن أن تعيش مع عشرات الحزم المنافسة .
  3. عدد المساهمين :كل ما كثر عدد المساهمين كثرت معها فرص التطورات و إمكانية الرد بسرعة على إستفسارات المستخدمين .
  4. الصيانة :تخضع للصيانة بشكل منتظم فنحن نعيش في عالم يتطور بإستمرار .

على الرغم من أننا سنتحقق من ذلك إلا أننا لن نتعتمد كثيرا على حالة التطوير المدرجة لكل حزمة.

الحزمة التي قمنا بإختيارها تبدو الوثائق الخاصة بها لائقة وفي أعلى الصفحة حصلنا على إشارة رسومية خاصة بالحزمة في مترجم بايثون (أنظر للصورة في الأسفل)

الوثائق الخاصة بحزمتنا ترشدنا أيضا إلى طريقة التثبيت، وكيفية المساهمة فيها أيضا إلخ … كما يوجد أيضا رابط صفحة الحزمة على موقع Github أي تتواجد الكثير من المعلومات المفيدة .

وبزيارتنا لصفحة الحزمة على موقع Github يمكننا الملاحظة أن الحزمة تتواجد في الموقع منذ حوالي سنتين و أن أخر تعديل للحزمة تم منذ شهرين، وأكثر من 300 تقييم و10 مساهمين

يبدو الوضع جيد أليس كذلك ؟ فلقد قمنا بإختيار حزمة جيدة حتى نقوم بدمج الرموز التعبيرية في تطبيقنا الذي يعمل على الطرفية .

أما الأن سنتعلم كيفية تثبيت الحزمة

تثبيت حزم بايثون بواسطة أداة إذارة الحزم PIP

أنا أفترض أنك قد قمت مسبقا بتثبيت بايثون على جهازك فلا داعي لشرح تلك العملية وفي حالة العكس فكل ماعليك القيام به هو عملية بحث سريعة على محرك البحث قوقل وستجد عشرات النتائح لتحقيق ذلك .

بعد الإنتهاء من تلك العملية (تثبيت بايثون) يمكنك التحقق من إذا كانت أداة pip مثبتة أم لا بكتابة الأمر التالي على الطرفية :

pip –version

شخصيا حصلت على الناتج التالي :


$ pip --version
pip 9.0.1 from /Library/Frameworks/Python.framework/↵
Versions/3.5/lib/python3.5/site-packages (python 3.5)

منذ النسخة 3.4 أصبحت بايثون تأتي مع أداة pip أما في حالة عدم ذلك يمكنك تثبيتها بإتباع الخطوات التالية .

كما أنصح بإستخدام البيئة الإفتراضية ولمزيد عن هذه الأخيرة أرجوا زيارة الرابط التالي 

في هذا الدرس قمت بإنشاء بيئة إفتراضية تحت إسم pip-tutorial وذلك من أجل حسن إدارة المشاريع المختلفة وعدم الخلط بينها .

من أجل التعرف على جميع خيارات الأمر Pip قم بتنفيذها من دون أي خيار وسنحصل على قائمة بجميع الخيارات الممكنة .

ولمزيد من الشرح حول كل خيار يمكن تنفيذ الأمر pip install --help  لقراءة مالذي يفعله الأمر Install ومالذي يجب تحديده لتنفيذ الأمر وطبعا فإن قراءة وثائق pip هو أمر أخر مفيد ومفروغ منه .


$ pip install --help

Usage:
pip install [options] <requirement specifier> [package-index-options] ...
pip install [options] -r <requirements file> [package-index-options] ...
pip install [options] [-e] <vcs project url> ...
pip install [options] [-e] <local project path> ...
pip install [options] <archive url/path> ...

Description:
Install packages from:

- PyPI (and other indexes) using requirement specifiers.
- VCS project urls.
- Local project directories.
- Local or remote source archives.

pip also supports installing from "requirements files", which provide
an easy way to specify a whole environment to be installed.

Install Options:
...

دعونا الأ، ننتقل إلى الأمر freeze ونركز عليه قليلا والذي سيكون عنصرا مهما في التعامل مع الأمر Pip، نقوم بتنفيذ الأمر pip freeze وستظهر قائمة تحتوي على جميع المكتبات والحزم المثتبة و إذا قمت تنفيذها على البيئة الإفتراضية التي قمنا بإنشاءها مؤخرا ستعطينا قائمة فارغة طبعا .

الأن سنقوم بفتح مترجم بايثون بفتح الطرفية وكتابة بايثون بعد ذلك سنقوم بمحاولة إستدعاء مكتبة emoji لنتفاجئ بأن بايثون لا يعرف هذه المكتبة وهذا أمر بديهي لأننا لم نقم بتثبيتها أصلا .


$ python
Python 3.5.0 (default)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import emoji
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'emoji'

الأن سنقوم بتثبيت وحدة emoji بكتابة الأمر  pip install emoji  على الطرفية وسنحصل على النتائج التالية :


$ pip install emoji==0.4.5
Collecting emoji==0.4.5
Installing collected packages: emoji
Successfully installed emoji-0.4.5

 

?الحصول على خطأ invalid syntax

إخواني الكرام إعلموا أن الأمر pip install  يتم تنفيذه على الطرفية وليس على مترجم بايثون لأن الأمر Pip عبارة عن برنامج يتم من خلاله تثبيت وحدات بايثون من خلال الطرفية ولكن يمكنك إستدعاء تلك الوحدات من مترجم بايثون.

وإذا كنت مصرا على تثبيت حزمة بواسطة pip داخل مترجم بايثون أو من خلال الشيل قم بزيارة الصفحة التالية 

عندما نقوم بتثبيت حزم بايثون مع pip يمكننا إجبار هذه الأخيرة بتثبيت نسخ معينة بإستخدام العوامل الرياضية التالية :

نسخة محددة من الحزمة (==)


$ pip install emoji==0.4.1

نسخة أخرى بدلا من المحددة (!=)


$ pip install emoji!=0.4.1

نسخة مماثلة أو أحدث (>=)


$ pip install emoji>=0.4.0

نسخة من الحزمة في النطاق المحدد (>=X.Y.T, <=X.Y.Z)


$ pip install emoji>=0.4.0, <=0.4.9

في حالة لم نقم بإجبار الأمر pip بتثبيت نسخة معينة فإنه سيقوم إفتراضيا بتثبيت أخر نسخة متوفرة .

بعد تثبيت وحدة  emoji سنقوم بتنفيذ أمر  pip freeze لنتأكد من وجوده ضمن قائمة الحزم المثبتة


$ pip freeze
emoji==0.4.5

وكما توقعنا فإن حزمة emoji مع رقم النسخة موجودة ضمن قائمة  pip freeze .

الأن نعود إلى مترجم بايثون ونقوم بإستدعاء حزمة  emoji وسنلاحظ عدم ظهور خطأ كما رأينا في السابق وهذا أمر جيد يدل على نجاح عملية التثبيت .

مبروك قمنا بعمل رائع .

حذف حزم بايثون بإستخدام pip

في هذا الجزء سنتعلم كيفية حذف حزم بايثون كل على حدى سواء  كانت على البيئة اللإفتراضية أو على دليل بابيون الرئيسي كما سنرى أيضا كيفية حذف مجموعة من الحزم بأمر واحد بالإضافة إلى حذف جميع الحزم الموجودة على الجهاز .

حذف كل حزمة على حدى 

يمكن فعل ذلك بإستخدام الأمر pip uninstall alembic (حزمة alembic على سبيل المثال)


$ pip uninstall alembic
Uninstalling alembic-0.6.0:
/Users/puma/.virtualenvs/pip-tutorial/bin/alembic
... a bunch on other files ...
/Users/puma/.virtualenvs/pip-tutorial/lib/python3.5/site-packages/alembic/util.py
Proceed (y/n)? y
Successfully uninstalled alembic-0.6.0

ولتقوم بالتحقق قم بتنفيذ أمر pip freeze

حذف مجموعة من الحزم

يمكن حذف مجموعة معينة من الحزم بإستخدام أمر واحد


$ pip uninstall package1 package2 ...

حذف جميع حزم بايثون 

إذا قررت حذف جميع حزم بايثون سواء كانت على البيئة اللإتراضية أو غير ذلك لسبب من الأسباب يمكنك تنفيذ الأمر التالي :


$ pip freeze | xargs pip uninstall -y

إلى هنا أكون قد إنتهيت من هذا الدرس وهذا لايعني أن الأمر إنتهى هنا حيث هناك الكثير لنكتشفه معا حول أداة pip في المستقبل .

 

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Post Navigation