การใช้งาน python หลายเวอร์ชันด้วย pyenv

บทความนี้จะช่วยให้เพื่อนๆ ที่อยากใช้งาน Python หลายเวอร์ชันพร้อมๆ กันบนเครื่องเซิฟเวอร์หรือบนเครื่องของเราเองก็ตาม เราสามารถใช้เครื่องมือที่ชื่อว่า pyenv ที่ช่วยให้การติดตั้ง Python เวอร์ชันต่างๆ สะดวกมากยิ่งขึ้น

ก่อนอื่นเราต้องเตรียม dependencies ต่างๆ ที่จำเป็นก่อน

brew install openssl readline sqlite3 xz zlib tcl-tk

openssl จะเกี่ยวกับ ssl ซึ่งเป็น module ที่จำเป็นสำหรับความปลอดภัยต่างๆ เช่น encryption, authentication

readline เกี่ยวข้องกับการใช้งาน Python แบบ interactive mode และการใช้งานฟังก์ชัน input

sqlite3 เกี่ยวกับการทำงานร่วมกับ database sqlite

xz และ zlib จะเกี่ยวข้องกับการบีบอัดข้อมูล (compression)

tcl-tk เกี่ยวกับการพัฒนา gui

หลังจากติดตั้ง dependencies เสร็จแล้ว ก็มาติดตั้ง pyenv ด้วย curl command กัน

curl https://pyenv.run | bash

ถ้าทุกอย่างราบรื่นดี เราก็สามารถเริ่มใช้งาน pyenv ได้เลย ก็เปิด terminal ขึ้นมาใหม่เลยจะได้ load pyenv เข้าไปใน PATH หรือถ้าใครไม่อยากปิดไปหรือกำลังติดตั้งอยู่บนเครื่องเซิฟเวอร์ก็ใช้วิธี reload shell ด้วยคำสั่ง

exec "$SHELL"

การใช้งาน pyenv

การติดตั้ง

ลองติดตั้ง Python เวอร์ชั่นอื่นๆ เช่น 3.11 ด้วยคำสั่ง pyenv install

pyenv install 3.11.5

ถ้าใครที่ใช้งานอินเทอร์เน็ตผ่าน proxy ก็ให้ตั้งค่า http_proxy และ https_proxy ก่อนนะครับ

List version ที่ติดตั้งไว้แล้ว

หลังจากติดตั้งเสร็จก็ลอง list version ที่มีอยู่ในเครื่องดูด้วยคำสั่ง pyenv versions

pyenv versions

ตั้งค่า Python version แต่ละ folder

เราสามารถตั้งค่าให้ pyenv เลือกใช้ Python เวอร์ชันที่เราต้องการให้อัตโนมัติ สำหรับแต่ละ folder ด้วยการใช้คำสั่ง pyenv local หรือจะสร้างไฟล์ .python-version ไว้ใน folder นั้นๆ ครับ

pyenv local 3.11.5

ตั้งค่า Python version ใน shell session

หรือถ้าเราอยากเปลี่ยน version ที่ใช้งานใน shell session ก็ให้ใช้คำสั่ง pyenv shell <version> เช่น

pyenv shell 3.10.13

ตั้งค่าเริ่มต้น (default version)

เราสามารถเลือกเวอร์ชันตั้งต้น (default version) ด้วยคำสั่ง pyenv global <version>

pyenv global 3.11.5