📦 pip + Packages — ลงของเสริม
Python ของเราเริ่มต้น มี built-in functions ~100 ตัว · ของจริงต้องใช้ เพิ่ม
เช่น pandas (ตาราง), requests (เรียก API), flask (web app) ·
pip คือเครื่องมือลง package เหล่านี้
🎯 pip คืออะไร · จำเป็นตอนไหน
pip = "Python Install Package" · มาคู่กับ Python อยู่แล้ว · ไม่ต้องลงแยก
| สัปดาห์ | Package ที่ต้องลง | คำสั่ง |
|---|---|---|
| W04–W07 | ไม่ต้องลงอะไรเพิ่ม | — |
| W08 | pandas | pip install pandas |
| W09 | numpy, matplotlib | pip install numpy matplotlib |
| W10 | seaborn (optional) | pip install seaborn |
| W12 | requests, flask | pip install requests flask |
| W13 | pytest | pip install pytest |
| W14 | streamlit, gunicorn | pip install streamlit |
!pip install ... · ดู setup-colab
📥 ลง package — 5 คำสั่งที่ใช้บ่อย
1. ลง 1 package
pip install pandas
# Mac (Mac มี pip2 ใน /usr/bin · ของจริงคือ pip3)
pip3 install pandas
2. ลงหลายตัวพร้อมกัน
pip install numpy pandas matplotlib seaborn
3. ลงเวอร์ชันเฉพาะ
pip install pandas==2.1.0 # ระบุเวอร์ชัน
pip install "pandas>=2.0,<3.0" # ช่วง
pip install pandas --upgrade # อัปเป็นล่าสุด
4. ลบ package
pip uninstall pandas
# จะถามยืนยัน · พิมพ์ y
5. ดูที่ลงไว้
pip list # ดูที่ลงทั้งหมด
pip show pandas # ดูรายละเอียดของ pandas (เวอร์ชัน, location)
pip list --outdated # ดูตัวที่มีเวอร์ชันใหม่กว่า
✅ ทดสอบหลังลง
ลง pandas แล้ว · เปิด Python REPL · ลอง import:
python # หรือ python3
>>> import pandas
>>> pandas.__version__
'2.1.0'
>>> exit()
ถ้า import ได้ ไม่มี error → สำเร็จ ✅
📋 requirements.txt — บอก Python ว่า project นี้ต้องการอะไร
W08+ ทุก project จะมีไฟล์ requirements.txt · ระบุ "ของที่ต้องลง" · ทำให้คนอื่นที่เปิด project เดิมลง package ตามได้ในคำสั่งเดียว
ตัวอย่าง requirements.txt
pandas==2.1.0
numpy>=1.24
matplotlib
requests>=2.30,<3.0
flask
ลงตามไฟล์
pip install -r requirements.txt
สร้างไฟล์จากที่ลงไว้
pip freeze > requirements.txt
⚠️ pip freeze เก็บ "ทุก package + ทุก sub-dependency" · ของจริง "เขียน requirements.txt มือ" เก็บแค่ของที่ใช้ตรง ๆ · sub-dependency ปล่อย pip จัดการ
🏠 Virtual Environment — แยก package ต่อ project
ปัญหา: ถ้าลง pandas==2.1 ใน project A และ pandas==1.5 ใน project B
— โดย default pip ลงรวมที่เดียว → ของใหม่ทับของเก่า · project A พัง
แก้: "แต่ละ project มี Python แยกตัว" เรียก virtual environment (venv)
สร้าง + เปิด venv
# 1. cd เข้า folder project
cd cp-w11-oop
# 2. สร้าง venv (1 ครั้งต่อ project)
python -m venv .venv # Windows
python3 -m venv .venv # Mac
# 3. เปิดใช้ (activate) — ทำทุกครั้งที่เปิด terminal ใหม่
# Windows PowerShell:
.venv\Scripts\Activate.ps1
# Windows CMD:
.venv\Scripts\activate.bat
# Mac/Linux:
source .venv/bin/activate
# 4. terminal จะเห็น (.venv) ขึ้นต้น = เปิดอยู่
# (.venv) PS C:\dev\cp-w11-oop>
# 5. ลง package — ตอนนี้ลงใน .venv ไม่ใช่ global
pip install pandas requests
# 6. ปิด venv
deactivate
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser → Y → Enter ·
ทำครั้งเดียว · กลับมาเปิด venv ได้ปกติ
เพิ่ม .venv/ ใน .gitignore
folder .venv/ มีขนาดใหญ่ (~100MB+) · ห้าม commit เข้า git · ใส่ใน .gitignore
# .gitignore
.venv/
__pycache__/
*.pyc
.env
🔧 ปัญหาที่พบบ่อย
1. pip: command not found
- Python ลงแล้ว · pip ปกติมาด้วย · ลอง
python -m pip install pandasแทน - Mac: ลอง
pip3
2. SSL: CERTIFICATE_VERIFY_FAILED (Mac)
- เปิด Finder → Applications → Python 3.x → double-click
Install Certificates.command - หลังจากนั้น pip ใช้ได้
3. Could not find a version that satisfies the requirement
- ชื่อ package พิมพ์ผิด → ตรวจที่ pypi.org
- Python เวอร์ชันเก่าเกินสำหรับ package ใหม่ → อัป Python หรือลงเวอร์ชันเก่าของ package
4. WARNING: Defaulting to user installation
- ไม่ใช่ error · แค่เตือนว่าลงใน user folder (เพราะไม่มีสิทธิ์ admin)
- ไม่ต้องแก้ — ใช้ได้ปกติ · หรือใช้ venv (แนะนำกว่า)
5. ImportError: No module named pandas หลังลงแล้ว
- ลงผิดเวอร์ชัน Python · เครื่องมีหลายเวอร์ชัน
- VS Code: Ctrl+Shift+P → "Python: Select Interpreter" → เลือกตัวที่ pip ลงไว้
- ตรวจ:
pip show pandas→ ดูบรรทัด "Location" · เปรียบเทียบกับpython -c "import sys; print(sys.executable)"
6. ลงช้า / ค้าง / timeout
- เน็ตช้า / มหาลัย firewall block · ลอง mirror:
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple - หรือเพิ่ม timeout:
pip install pandas --default-timeout=300
7. ลง package ใหญ่ ๆ (pytorch, tensorflow) แล้วเครื่องช้า
- คอร์สนี้ไม่ต้องลง pytorch / tensorflow ลง local · ใช้ Colab ดีกว่า
- ถ้าลงผิด →
pip uninstall torch torchvision torchaudio
🎯 Workshop — 5 นาที
- เปิด terminal ·
pip --version· จดเวอร์ชัน pip install requests· รอให้เสร็จpython→import requests→requests.__version__· ออกด้วยexit()- สร้าง
requirements.txtใน folder ใด ๆ ใส่บรรทัด:requests pip install -r requirements.txt· เห็น "Requirement already satisfied" = ของลงไว้แล้ว ✅- (optional) สร้าง venv:
python -m venv .venv· activate ·pip install requests· ทดสอบ → deactivate
🎯 Checklist ก่อนไปต่อ
- ☐
pip install pandasลงได้ - ☐
import pandasใน Python REPL ไม่ error - ☐ เข้าใจ
requirements.txt— เปิดอ่านได้ + ลงตามได้ - ☐ (advanced) สร้าง venv ได้ + activate + deactivate