Use pyenv manage Python versions
pyenv เป็นเครื่องมือที่ช่วยให้เราสามารถติดตั้งและใช้งาน Python หลายๆเวอร์ชันพร้อมกันในเครื่องเดียวกัน สามารถสลับไปมาได้ และ เวลาลง library ต่างๆด้วย pip ก็ไม่ทำให้ library มันตีกันจนใช้งานไม่ได้ สำหรับ post นี้จะพาไปลองใช้งาน pyenv และคำสั่งในการใช้งานเบื้องต้นกันครับ
Install pyenv
ติดตั้ง pyenv สำหรับใครที่ใช้ macOS และ hombrew ก็ติดตั้งผ่าน brew ได้เลยด้วยคำสั่ง
brew install pyenv
ลิสต์ version ของ Python ที่สามารถติดตั้งได้
ก่อนจะติดตั้ง เราสามารถใช้ pyenv ลิสต์ version ที่ support ออกมาได้ก่อนโดยใช้คำสั่ง
pyenv install -l
ติดตั้ง Python เวอร์ชันที่ต้องการ
ส่วนการติดตั้งก็ใช้คำสั่ง pyenv install
ตามด้วยเลขเวอร์ชัน เช่นผมจะติดตั้งเวอร์ชัน 3.7.4
ก็สั่งด้วยคำสั่งดังนี้
pyenv install 3.7.4
ลิสต์ versions ที่ติดตั้งไว้แล้ว
เราสามารถลิสต์ดูได้ว่าเราเคยติดตั้ง Python versions อะไรไว้แล้วออกมาได้ด้วยคำสั่ง
pyenv versions
จากผลลัพธ์จะเห็นว่ามี system นั่นหมายถึง Python version ที่ถูกติดตั้งไว้โดย OS หรือติดตั้งด้วยวิธีอื่นที่ไม่ใช่ pyenv
ส่วน * ด้านหน้านั่นหมายถึงว่าตอนนี้เราเลือกใช้ Python version ไหนอยู่เป็น global ซึ่งก็คือใช้ของที่ติดตั้งอยู่ก่อนแล้วใน OS นั่นเอง
เปลี่ยน global version
เราสามารถเปลี่ยน version สำหรับ global scope ของเครื่องเราโดยใช้คำสั่ง pyenv global
ตามด้วยเลขเวอร์ชัน เช่นผมเลือกเวอร์ชัน 3.7.4
เป็น global ก็สั่งด้วยคำสั่งดังนี้
pyenv global 3.7.4
เพิ่ม binary path ของ pyenv ไปที่ PATH
การจะเรียกคำสั่งของ Python ที่ติดตั้งผ่าน pyenv ได้นั้นเราต้องไม่ลืมเพิ่ม binrary path ที่ pyenv ติดตั้ง Python เอาไว้ลงไปที่ PATH environment variable ด้วย
ซึ่ง binary path ของ pyenv จะอยู่ที่
$HOME/.pyenv/shims
เวลาเราเลือกเวอร์ชัน pyenv จะสร้าง link ไปหาคำสั่งของ version ที่เราเลือกเอาไว้ที่ path นี้
ใครใช้ bash เปลี่ยนได้โดยเพิ่ม config ใน .bashrc
หรือ .profile
ส่วนใครใช้ zsh เปลี่ยนได้ที่ .zshrc
ส่วนใครที่ใช้ fishshell เหมือนผมสามารถเพิ่ม path ด้วยคำสั่งแบบนี้
set -Ux fish_user_paths $HOME/.pyenv/shims $fish_user_paths
หลังจากนั้นลอง check version ของ Python ด้วยคำสั่ง python --version
และเช็ค path ด้วยคำสั่ง which python
คำสั่งอื่นๆ
นอกจากการใช้งานเบื้องต้นแล้ว pyenv
ยังมีคำสั่งอื่นๆอีก สามารถสั่ง pyenv
แล้ว enter เลยจะขึ้นรายละเอียดแบบนี้
ดู full documentation อื่นๆต่อได้ที่ github ของ project ได้ที่นี่เลย