อัปเดตล่าสุด Nov. 6, 2024
pip คือ Package Manager (ตัวจัดการแพ็คเกจ) ของภาษาไพธอน เปรียบเสมือนฝั่ง JavaScript ก็จะมีตัวจัดการแพ็คเกจอย่าง NPM เป็นต้น โดยจะมีแพ็คเกจหรือไลบรารีต่าง ๆ มากมายที่คนอื่นได้ทำมาให้ถูกเก็บอยู่ใน pip แล้วเรียบร้อย อยากได้ตัวไหนเราก็แค่ pip install ... ได้เลย
ก่อนอื่นเราต้องเช็คก่อนครับว่าเครื่องของเรานั้นมี 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 ก็เรียบง่ายมากครับ เราต้องเปิด Terminal หรือ PowerShell จากนั้น activate virtual environment ของ Python ขึ้นมาเสียก่อน แล้วใช้คำสั่ง pip install PACKAGE_NAME เช่น
$ pip install flask
จากด้านบนเป็นการติดตั้ง Flask web framework
จะได้
Collecting flaskDownloading Flask-2.2.3-py3-none-any.whl (101 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.8/101.8 kB 1.8 MB/s eta 0:00:00Collecting itsdangerous>=2.0Using cached itsdangerous-2.1.2-py3-none-any.whl (15 kB)Collecting Werkzeug>=2.2.2Downloading Werkzeug-2.2.3-py3-none-any.whl (233 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 233.6/233.6 kB 4.0 MB/s eta 0:00:00Collecting click>=8.0Using cached click-8.1.3-py3-none-any.whl (96 kB)Collecting Jinja2>=3.0Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)Collecting importlib-metadata>=3.6.0Downloading importlib_metadata-6.4.1-py3-none-any.whl (22 kB)Collecting zipp>=0.5Downloading zipp-3.15.0-py3-none-any.whl (6.8 kB)Collecting MarkupSafe>=2.0Downloading 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, flaskAttempting uninstall: WerkzeugFound existing installation: Werkzeug 2.0.2Uninstalling Werkzeug-2.0.2:Successfully uninstalled Werkzeug-2.0.2Successfully 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
ถ้า 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 เพื่อแสดงผลไลบรารีหรือแพ็คเกจตัวไหนบ้างที่เราติดตั้งไปแล้ว
Django==3.2.18Flask==2.2.3
จะเห็นว่ามี 2 packages ที่ได้ติดตั้งคือ Django และ Flask ที่เพิ่งติดไปเมื่อสักครู่
เมื่อเรามีแพ็คเกจหรือไลบรารี่ในโปรเจคท์เรียบร้อย การที่เราจะนำโปรเจคท์ไปแชร์ให้คนอื่นโดยที่รันได้ไม่มีปัญหาเพราะเวอร์ชันของ packages/libraries ก็ต้องเหมือนกันกับเครื่องเรา เราก็สามารถ freeze แพ็คเกจเหล่านั้นไว้ในไฟล์ชื่อว่า requirements.txt
$ pip freeze > requirements.txt
เวลาจะนำแพ็คเกจเหล่านั้นใน requirements.txt ไปใช้ก็เพียงแค่
$ pip install -r requirements.txt
เป็นอันเสร็จสิ้น
คอร์สอบรม เรียนทำเว็บ ด้วย Django สุดยอด web framework อันดับ 1 ที่ได้รับ…