Use pyenv manage Python versions

Weerasak Chongnguluam
DEVdose
Published in
2 min readOct 27, 2019

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 ได้ที่นี่เลย

--

--