Python PIP Install

   อัปเดตล่าสุด Feb. 3, 2024

PIP คืออะไร?

pip คือ Package Manager (ตัวจัดการแพ็คเกจ) ของภาษาไพธอน เปรียบเสมือนฝั่ง JavaScript ก็จะมีตัวจัดการแพ็คเกจอย่าง NPM เป็นต้น โดยจะมีแพ็คเกจหรือไลบรารีต่าง ๆ มากมายที่คนอื่นได้ทำมาให้ถูกเก็บอยู่ใน pip แล้วเรียบร้อย อยากได้ตัวไหนเราก็แค่ pip install ... ได้เลย

การติดตั้ง PIP

ก่อนอื่นเราต้องเช็คก่อนครับว่าเครื่องของเรานั้นมี pip แล้วหรือยัง โดยเปิด Terminal (สำหรับ Mac/Linux) หรือ PowerShell/CMD (สำหรับ Windows)

$ pip --version


จะได้

pip 22.3 from /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip
(python 3.11)


ซึ่งหมายถึง pip ถูกติดตั้งแล้ว


แต่ถ้ายังไม่ถูกติดตั้ง? ก็สามารถติดตั้งได้ดังต่อไปนี้

macOS ติดตั้งสุดง่ายผ่าน Homebrew

$ brew install python


โดยปกติแล้ว pip ก็จะถูกติดตั้งมาพร้อมกับ Python อยู่แล้วครับ ซึ่งถ้าใครใช้ไพธอนอยู่ก็น่าจะมี pip ติดตั้งอยู่แล้ว โดย Windows สามารถติดตั้งผ่าน https://pypi.org/project/pip/

การใช้งาน PIP

วิธีการใช้งาน pip ก็เรียบง่ายมากครับ เราต้องเปิด Terminal หรือ PowerShell จากนั้น activate virtual environment ของ Python ขึ้นมาเสียก่อน แล้วใช้คำสั่ง pip install PACKAGE_NAME เช่น

$ pip install flask


จากด้านบนเป็นการติดตั้ง Flask web framework

จะได้

Collecting flask
Downloading Flask-2.2.3-py3-none-any.whl (101 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.8/101.8 kB 1.8 MB/s eta 0:00:00
Collecting itsdangerous>=2.0
Using cached itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting Werkzeug>=2.2.2
Downloading Werkzeug-2.2.3-py3-none-any.whl (233 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 233.6/233.6 kB 4.0 MB/s eta 0:00:00
Collecting click>=8.0
Using cached click-8.1.3-py3-none-any.whl (96 kB)
Collecting Jinja2>=3.0
Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting importlib-metadata>=3.6.0
Downloading importlib_metadata-6.4.1-py3-none-any.whl (22 kB)
Collecting zipp>=0.5
Downloading zipp-3.15.0-py3-none-any.whl (6.8 kB)
Collecting MarkupSafe>=2.0
Downloading MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl (13 kB)
Installing collected packages: zipp, MarkupSafe, itsdangerous, click, Werkzeug, Jinja2, importlib-metadata, flask
Attempting uninstall: Werkzeug
Found existing installation: Werkzeug 2.0.2
Uninstalling Werkzeug-2.0.2:
Successfully uninstalled Werkzeug-2.0.2
Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.2 Werkzeug-2.2.3 click-8.1.3 flask-2.2.3 importlib-metadata-6.4.1 itsdangerous-2.1.2 zipp-3.15.0


การติดตั้งแบบกำหนดเวอร์ชัน

ปกติแล้วถ้าเราติดตั้งแบบปกติคือ pip install PACKAGE_NAME นั้น ทาง pip จะนำเวอร์ชันล่าสุดของแพ็คเกจหรือไลบรารีนั้นมาให้ ในบางครั้งเราไม่ได้ต้องการไลบรารี่ตัวล่าสุดเสมอไปครับ ดังนั้นเราสามารถติดตั้ง version ของ package หรือ library นั้น ๆ ด้วยคำสั่ง pip install PACKAGE_NAME==x.x.x (เมื่อ x คือหมายเลขเวอร์ชัน) เช่น ผมอยากได้ Django เวอร์ชัน 3.2.18 หรือ Django v.3 (เวอร์ชันล่าสุดคือ Django 4)

$ pip install django==3.2.18


จะได้

...
...
...
Successfully installed django-3.2.18


Requirement already satisfied

ถ้า package นั้น ๆ ถูกติดตั้งอยู่ก่อนหน้านั้นแล้วจะแสดงผล Requirement already satisfied:

จากตัวอย่างด้านล่างเป็นการติดตั้ง Django ซึ่งเป็น web framework ของ Python ที่ได้ถูกติดตั้งไว้ก่อนหน้านี้แล้ว

$ pip install django

 

จะเห็นว่ามีการแจ้งเตือนว่าแพ็คเกจที่เรากำลังจะติดตั้งนั้น ถูกติดตั้งไว้ก่อนหน้าแล้ว

Requirement already satisfied: django in /Users/sonny/my_project/env/lib/python3.8/site-packages (3.2.6)


pip freeze สำหรับลิสต์ดูแพ็คเกจ

เราสามารถใช้คำสั่ง pip freeze เพื่อแสดงผลไลบรารีหรือแพ็คเกจตัวไหนบ้างที่เราติดตั้งไปแล้ว

Django==3.2.18
Flask==2.2.3


จะเห็นว่ามี 2 packages ที่ได้ติดตั้งคือ Django และ Flask ที่เพิ่งติดไปเมื่อสักครู่


requirements.txt สำหรับ freeze แพ็คเกจเก็บไว้

เมื่อเรามีแพ็คเกจหรือไลบรารี่ในโปรเจคท์เรียบร้อย การที่เราจะนำโปรเจคท์ไปแชร์ให้คนอื่นโดยที่รันได้ไม่มีปัญหาเพราะเวอร์ชันของ packages/libraries ก็ต้องเหมือนกันกับเครื่องเรา เราก็สามารถ freeze แพ็คเกจเหล่านั้นไว้ในไฟล์ชื่อว่า requirements.txt 

$ pip freeze > requirements.txt


เวลาจะนำแพ็คเกจเหล่านั้นใน requirements.txt ไปใช้ก็เพียงแค่ 

$ pip install -r requirements.txt

เป็นอันเสร็จสิ้น



คอร์สเรียนแนะนำ