macOS มาพร้อม Python 2.7 แต่มัน deprecated (เลิกพัฒนา) แล้ว
ชุมชน Python ย้ายไป 3.x แล้ว (ตอนเขียนเป็น 3.9) และ 4.x จะเข้ากันได้แบบ backward compatible
รัน python ใน Terminal จะเห็นเตือน:
จนกว่า Apple จะตั้ง Python 3 เป็นค่าเริ่มต้น ต้องติดตั้งเอง
คำสั่งเดียว: รัน Python 3
บางคนแค่รัน python3 ก็พอ (มีเลข 3 ท้าย)
python3
พอใจแล้วจบได้ครับ Happy coding!
แต่ถ้าอยาก จัดการเวอร์ชันหลายตัว และควบคุมละเอียด อ่านต่อเลย
ติดตั้ง Homebrew บน Mac
Homebrew = package manager อันทรงพลังสำหรับ Mac
เปิด Terminal (Spotlight: Command+Space → "terminal")
รันคำสั่งติดตั้งล่าสุด:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
จะขอรหัสผ่าน admin (รหัสล็อกอิน Mac) → พิมพ์ Enter
Homebrew จะขอยืนยัน → กด Enter ต่อ (หรือปุ่มอื่นถ้ายกเลิก)
ติดตั้ง pyenv จัดการเวอร์ชัน Python
PyEnv ช่วยสลับเวอร์ชัน Python (รองรับ 2.x, รอ 4.0)
brew install pyenv
ตอนนี้ติดตั้ง Python ล่าสุดได้แล้ว
ใช้ pyenv ติดตั้ง/อัปเดต Python
pyenv install 3.9.2
เปลี่ยน 3.9.2 เป็นเวอร์ชันล่าสุดได้ (เช่น 4.0.0 เมื่อออก)
pyenv install 4.0.0
Troubleshooting pyenv
Error "C compiler cannot create executables" → วิธีแก้ง่าย: ติดตั้ง Xcode ใหม่
Xcode = เครื่องมือ Apple มี C libraries ที่ Python ต้องการ ใหญ่ ~11 GB แต่มันจำเป็น อาจรันตอนนอน
โหลด Xcode ล่าสุด → รัน pyenv install 3.9.2 อีกครั้ง
ตั้งค่า PATH สำหรับ pyenv (Bash หรือ ZSH)
ต้อง update Unix PATH ให้ PyEnv ทำงานกับระบบได้
เวลารันคำสั่ง
pythonหรือpipOS จะหา executable ใน directories ตามลำดับในตัวแปรPATH(คั่นด้วย colon)/usr/local/bin:/usr/bin:/binค้นจากซ้ายไปขวา → directory หน้ามี precedence มากกว่า
pyenv ใส่ directory ของ shims หน้าสุด PATH:
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/binผ่าน rehashing pyenv รักษา shims ให้ตรงกับทุกคำสั่ง Python ทุกเวอร์ชัน
Shims = executableเบาๆ ส่งคำสั่งต่อให้ pyenv
Bash (ค่าเริ่มต้น macOS)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
หมายเหตุ: ถ้าไม่มีโฟลเดอร์ /bin ใน pyenv_root (มีแค่ /shims) ให้รัน:
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bash_profile
เพิ่ม PyEnv Init:
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
รีเซ็ต Terminal:
reset
ZSH หรือ OhMyZSH
แก้ไข .zshrc แทน:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
ตั้งค่า Python เวอร์ชัน Global Default
pyenv global 3.9.2
เปลี่ยน 3.9.2 เป็นเวอร์ชันล่าสุดได้
ตรวจสอบ:
pyenv versions
ควรเห็น * หน้าวอร์ชันที่เป็น global
ขั้นตอนสุดท้าย: ปิดและเปิด Terminal ใหม่
รัน python → จะเปิด Python ใหม่ ไม่ใช่ 2.7 แล้ว
ยินดีด้วย! ขอบคุณที่อ่าน Happy coding! 🐍