เป้าหมายของหน้านี้ #
- ติดตั้ง Python 3.13 และ
uvบน macOS Ventura / Sonoma - สร้างสภาพแวดล้อมเสมือนและอัปเดตไลบรารีได้ด้วยตัวเอง
- รู้วิธีเชื่อมต่อกับเอดิเตอร์อย่าง VS Code
สิ่งที่ต้องมี #
| รายการ | รายละเอียด |
|---|---|
| เครื่องมือ | Homebrew (brew --version เพื่อตรวจสอบ หากยังไม่มี ดูคำแนะนำที่ brew.sh) |
| เปลือกคำสั่ง | zsh (ค่าเริ่มต้น) หรือ bash – ในที่นี้ใช้ zsh |
| โฟลเดอร์งาน | ตัวอย่าง ~/Projects/my-app |
1. ติดตั้ง Python 3.13 #
brew update
brew install python@3.13
brew link python@3.13
python3.13 --version
หากเห็น Python 3.13.x แสดงว่าพร้อมแล้ว ถ้ามีเวอร์ชันอื่นลิงก์อยู่ให้รัน brew unlink python@3.x แล้วลองใหม่
2. ติดตั้ง uv #
curl -LsSf https://astral.sh/uv/install.sh | sh
ตรวจสอบด้วย:
uv --version
ถ้าระบบบอกว่าไม่พบคำสั่ง ให้เพิ่ม ~/.local/bin ใน PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
3. สร้างโฟลเดอร์โปรเจ็กต์และสภาพแวดล้อม #
mkdir -p ~/Projects/my-app
cd ~/Projects/my-app
uv venv --python 3.13 .venv
source .venv/bin/activate
เมื่อเห็น (.venv) ที่หน้าพรอมป์ แปลว่าพร้อมใช้งาน ใช้ deactivate เมื่อต้องการออก
💡 ไม่ต้อง activate ก็ได้ เพียงรัน
uv run python script.pyระบบจะใช้สภาพแวดล้อมให้อัตโนมัติ
4. จัดการไลบรารี #
uv pip install numpy pandas
uv pip list
uv pip sync requirements.txt
uv pip install: เพิ่มแพ็กเกจuv pip list: ตรวจสถานะuv pip sync: ทำให้ตรงกับrequirements.txt
5. ใช้ร่วมกับ VS Code #
- เปิด VS Code → Command Palette (
⇧⌘P) →Python: Select Interpreter - เลือก
.venv/bin/pythonเพื่อผูกการเติมคำและดีบักกับสภาพแวดล้อม - แนะนำติดตั้งส่วนขยาย “Python”, “Pylance”, “Black Formatter”, “Flake8 / Ruff”
6. ปัญหาที่เจอบ่อย #
| อาการ | วิธีแก้ |
|---|---|
แจ้งว่า brew ไม่มี | ยังไม่ได้ติดตั้ง Homebrew → ทำตามคู่มือบนเว็บไซต์ |
ใช้ uv ไม่ได้ | เพิ่ม PATH ลงใน ~/.zshrc แล้ว source ~/.zshrc |
| สร้างสภาพแวดล้อมแล้วเจอ error เรื่องสิทธิ์ | ตรวจสิทธิ์โฟลเดอร์ด้วย chmod / chown แล้วลองใหม่ |
7. เก็บงาน #
- ออกจากสภาพแวดล้อม:
deactivate - ลบสภาพแวดล้อม:
rm -rf .venv - เก็บรายการแพ็กเกจ:
uv pip freeze > requirements.txt
เสร็จเรียบร้อย! พร้อมแล้วสำหรับการเรียนพื้นฐาน Python ต่อในบทถัดไป