Home

Published

- 2 min read

Install Python และ control version ด้วย Pyenv

img of Install Python และ control version ด้วย Pyenv

Intro

บทความนี้เหมาะกับ : ผู้ที่ไม่อยากหลงทางกับการติดตั้ง Python เพราะเราหลงให้ก่อนแล้ว … 🤣

แก้ปัญหา : การจัดการ Python version เมื่อแต่ละ project ใช้คนละ version กัน โดยไม่ต้องลบลงใหม่หรือ brew link, brew unlink

การพัฒนาซอฟต์แวร์บน macOS มักต้องเผชิญกับการจัดการเวอร์ชันของ Python ที่ต่างกันระหว่างโปรเจกต์ต่าง ๆ โดยเฉพาะเมื่อโปรเจกต์ต่าง ๆ ต้องการเวอร์ชัน Python ที่แตกต่างกันเพื่อให้ทำงานได้ตามความต้องการของมัน ในบทความนี้ เราจะสอนวิธีใช้ pyenv เพื่อจัดการเวอร์ชัน Python ใน macOS อย่างง่ายดาย

Install Pyenv

การติดตั้ง Pyenv บน macOS ด้วย homebrew
ref: https://github.com/pyenv/pyenv

   brew update
brew install pyenv

ตรวจสอบ Pyenv version

   pyenv --version

Setup shell environment

   echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

Reset shell

   exec "$SHELL"

การใช้งาน

สร้าง Project 1

ทดลองสร้าง Project1 และใช้ Python version 3.12.2

   mkdir project1
cd project1
pyenv install 3.12.2
pyenv local 3.12.2
python -V

เมื่อ check version ก็จะเป็น Python 3.12.2

สร้าง Project 2

ทดลองสร้าง Project2 และใช้ Python version 3.11.8

   mkdir project2
cd project2
pyenv install 3.11.8
pyenv local 3.11.8
python -V

เมื่อ check version ก็จะเป็น Python 3.11.8

สังเกตว่าใน project จะมีไฟล์ .python-version สร้างขึ้นมาในแต่ละ project
ซึ่งเนื้อหาในไฟล์จะมีการบอกว่า project นี้ใช้ python version อะไร
และเมื่อเราสลับ project ไปมา ตัว shell ก็จะรู้เองว่าต้องใช้ python version อะไร โดยที่เราไม่ต้องใช้คำสั่ง pyenv local <version> อีกแล้ว

Tips

สรุป

การจัดการเวอร์ชัน Python ใน macOS ไม่ต้องเป็นปัญหาอีกต่อไปด้วยการใช้ pyenv ซึ่งเป็นเครื่องมือที่มีประสิทธิภาพและง่ายต่อการใช้งาน การใช้ pyenv เพื่อสร้างและสลับเวอร์ชัน Python สามารถช่วยให้การพัฒนาซอฟต์แวร์ของคุณเป็นไปอย่างมีประสิทธิภาพและรวดเร็วมากขึ้น

What’s next ?

ถ้าแต่ละ Project ใช้ python dependencies คนละ version ล่ะ ? เราควรทำยังไง ?

ติดตามต่อได้ที่ Devbrite ขอบคุณครับ

Related Posts

There are no related posts yet. 😢