ตั้งค่า uv บน macOS

Basic python

ตั้งค่า uv บน macOS

เป้าหมายของหน้านี้ #

  • ติดตั้ง 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 #

  1. เปิด VS Code → Command Palette (⇧⌘P) → Python: Select Interpreter
  2. เลือก .venv/bin/python เพื่อผูกการเติมคำและดีบักกับสภาพแวดล้อม
  3. แนะนำติดตั้งส่วนขยาย “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 ต่อในบทถัดไป