แนะนำวิธีการใช้งาน Homebrew ร่วมกับ Pythonใน macOS

When Homebrew and Python become a good friend.

Sasiwut Chaiyadecha
3 min readJun 9, 2021
macos homebrew anaconda python package manager virtualenv

สำหรับ Mac user แล้ว การใช้งาน macOS ให้ลื่นไหลและเต็มประสิทธิภาพ นิยมติดตั้ง Package เสริมเพื่อใช้จัดการเป็น Package manager ซึ่งตัวที่นิยมใช้กันอย่างแพร่หลาย (เรียกได้ว่าแทบทุกเครื่อง) คือ Homebrew

ตอนนี้ไม่ได้เกี่ยวกับการใช้งาน Homebrew แต่อย่างใด แต่เป็นการแนะนำวิธีการใช้งาน Homebrew ร่วมกับ Python ในระบบปฏิบัติการ macOS โดยที่ไม่ต้องพึ่งพา Python package manager อย่าง Anaconda

Homebrew and Anaconda

Anaconda ถือเป็น Python package manger ที่เป็นที่นิยมมากสำหรับงาน Data scientist เพราะร่วม Libraries ที่จำเป็นในการใช้งานเอาไว้ทั้งหมดแล้ว ทำให้เหมาะกับการใช้งานในทุกระดับ ถ้าติดตั้ง Anaconda ใน Windows ที่ไม่จำเป็นต้องมี Package manager ย่อมไม่มีปัญหาอะไร แต่เมื่อมาเป็นระบบปฏิบัติ macOS Anaconda อาจไม่ใช่คำตอบ

macos homebrew anaconda python package manager virtualenv

การใช้งาน Anaconda ร่วมกับ Homebrew เป็นสิ่งที่ไม่ลงรอยกันเท่าไหร่ เพราะใน Terminal มีคำสั่งพื้นฐานของ Homebrew ติดตั้งอยู่ การใช้งา conda เพื่อจัดการ Libraries อาจทำไม่ได้ หรือทำได้แต่ไม่สะดวก

มีวิธีการต่าง ๆ มากมาย ทั้งยังใช้ Anaconda อยู่ หรือเลิกใช้ Anaconda และหันไปใช้ Python package manager ค่ายอื่นแทน ซึ่งก็ขึ้นอยู่กับวิธีการ Setup ตอนนี้เลยขอเสนอเป็นอีกทางเลือก สำหรับการ Setup เพื่อให้ Homebrew และ Python ทำงานร่วมกันได้อย่างดี

macos homebrew anaconda python package manager virtualenv

Setup Homebrew

macos homebrew anaconda python package manager virtualenv

อันดับแรกต้องติดตั้ง Homebrew เพื่อเป็น Package manager ของเครื่องก่อน ซึ่งวิธีการติดตั้งสามารถทำได้ผ่าน Command line ใน Terminal

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

ให้ Copy command line ด้านบน ไปวางที่ Terminal แล้วกด Enter หลังจากนั้นทุกอย่างจะติดตั้งอย่างอัตโนมัติ ซึ่งใช้เวลาไม่นานมาก เมื่อติดตั้งเสร็จแล้วสามารถใช้คำสั่ง brew --helpเพื่อทดสอบการติดตั้งว่าสมบูรณ์ดีหรือไม่

เมื่อไม่ฟ้อง Error อะไรแล้ว สามารถติดตั้ง Python ต่อได้ แต่ก่อนการตั้งติด Python อยากแนะนำ Shell ที่อาจมีประโยชน์ในการใช้งาน Terminal เช่น การติดตั้ง Shell ใหม่อย่าง Oh-my-zsh เพื่อความสามารถให้กับการใช้งาน Terminal สามารถติดตั้งได้ด้วย Command line ด้านล่าง (เป็นการติดตั้งผ่าน Curl)

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

เมื่อติดตั้ง Oh-my-zsh แล้ว Terminal จะมีความสามารถเพิ่มเติมด้วยการติดตั้ง Plugins เสริมเข้าไป เช่น zsh-autosuggestions, zsh-syntax-highlighting ซึ่งการติดตั้งสามารถทำได้ด้วย Oh-my-zsh (ใน Link ด้านบนมีรายละเอียดบอกไว้) เมื่อติดตั้งเสร็จแล้ว ให้ Add plugins เพิ่มเข้าไปในไฟล์ ~/.zshrc

plugins=( [plugins...] zsh-syntax-highlighting)

หรือการติดตั้ง Theme ให้กับ Terminal ก็สามารถทำได้เช่นกัน (เหมือนรูปด้านล่าง) แต่อยากไม่ได้ลงรายละเอียดขั้นตอนในตอนนี้

macos homebrew anaconda python package manager virtualenv
ตัวอย่างการใช้งาน powerline theme ใน iterm2

Use Python

macos homebrew anaconda python package manager virtualenv

การติดตั้ง Python สามารถติดตั้งผ่าน brew install python ได้ตามปกติ เมื่อติดตั้ง Python เสร็จ ในเครื่องจะได้ pip ติดตั้งมาด้วย ซึ่ง pip เอาไว้ใช้ติดตั้ง Libraries ใน Environment อีกที หลังจากการติดตั้งค่า Default ของ macOS จะเป็น Python version 2.x การเรียนใช้ Python 3.x ต้องใช้ Command python3 รวมถึง pip ด้วยเช่นกันต้องใช้ pip3 ในการติดตั้ง Libraries ให้ Python version 3.x

เนื่องจากใช้งาน Python 3.x เป็นหลัก เพื่อความสะดวกในการเรียกใช้งานทั้ง python และ pip สามารถทำการเปลี่ยน Mapping command ได้ใน ~/.zshrc โดยให้เพิ่ม Line alias ในไฟล์ จากนั้นทำการ source ~/.zshrc

alias python="python3"
alias pip="pip3"

สิ่งที่ยังขาดไปคือ Package manager ที่นำมาใช้ทดแทน Anaconda ขอแนะนำเป็น virtualenv ที่ใช้งานได้ง่ายสามารถจัดการ Libraries แยกได้ตาม Enviroment สามารถติดตั้งได้ด้วย pip install virtualenv เมื่อติดตั้งเสร็จแล้ว ~/.zshrc อาจยังไม่รู้จัก Command นี้ ให้ทำการ Add virtualenv ใน ~/.zshrc ก่อน

plugins=( [plugins...] virtualenv)

การใช้งาน Virtualenv เป็นการสร้าง Environment แยกออกจากกันอย่างชัดเจน เพื่อไม่ให้เกิดปัญหาเรื่อง Version ของ Libraies ที่อาจไม่ตรงกันในแต่ละ Project ตัวอย่างการใช้งาน สามารถดูได้จาก Steps ด้านล่าง

สร้าง Folder project ด้วย mkdir project-name จากนั้น cd project-name เมื่อเข้ามาใน Folder project-name แล้ว สามารถสร้าง Virtual environment ได้ด้วย

virtualenv env-name

ทำการ Activate virtual environment ได้ด้วย

source env-name/bin/activate/

เมื่อ Activate แล้ว สามารถใช้ pip install libraries-name เพื่อติดตั้ง Libraries ที่จำเป็นสำหรับ Project ที่กำลังทำงานอยู่ เมื่อใช้งานเสร็จแล้ว ให้ทำการ deactivate เพื่อออกจาก Virtual environment หรือหากต้องการลบทั้ง Project สามารถ Command line ด้านล่าง

rm -r project-name/

Conclusion

ทั้งหมดนี้เป็นเพียงหนึ่งในหลายวิธีการ Setup python ให้ทำการร่วมกับ Homebrew ได้โดยไม่ต้องพึ่งพา Anaconda ข้อดีของวิธีการนี้คือ Libraries version จะไม่ซ้อนทับกันในแต่ละ Project หรือเมื่อทำ Libraries พัง ก็สามารถลบทั้ง Environment โดยไม่กระทบกับ Core หลักของเครื่อง ลองเอาไปปรับใช้กันดูได้

--

--