macOS 中 Python 版本太多如何管理?試試 pyenv 吧!

修改不同 python 專案時,需要對該專案所使用的 python 版本做切換,如果想全部裝在 host 而不使用 docker 隔離該怎麼處理?python 有像 nodejs 的 nvm 之類的管理工具嗎?那就是 pyenv!就讓我們來看看該如何使用。

首先安裝 pyenv,這邊我們使用 brew 安裝

brew install pyenv

接下來透過 pyenv 安裝你想要的 python 版本們(千萬不要手殘自己下載安裝檔安裝!)

pyenv install 3.8.7  # 這邊以 3.8.7 為例

如果還需要其他的版本,也使用相同的指令安裝。

切換要使用的預設 python 版本

pyenv global 3.8.7  # 這邊以 3.8.7 為例

查看目前 python 使用那一個版本

pyenv version

查看目前安裝了哪些版本

pyenv versions  # 多一個 s

最最最重要的是,要把以下指令貼到 .bash_profile 最後面(或.zshrc 如果使用 zsh 的話),如此每次開一個新的 shell 就能自動 init pyenv

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

也可以使用懶人一行指令解決

# .bash_profile
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

# .zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc

如此以後開 console 就能使用 pyenv 管理 python 版本了!

延伸閱讀:Python 詭譎的 default parameter value ,由踩坑來學習!

參考資料

The right and wrong way to set Python 3 as default on a Mac
github – pyenv

Written by J
雖然大學唸的是生物,但持著興趣與熱情自學,畢業後轉戰硬體工程師,與宅宅工程師們一起過著沒日沒夜的生活,做著台灣最薄的 intel 筆電,要與 macbook air 比拼。 離開後,憑著一股傻勁與朋友創業,再度轉戰軟體工程師,一手扛起前後端、雙平台 app 開發,過程中雖跌跌撞撞,卻也累計不少經驗。 可惜不是那 1% 的成功人士,於是加入其他成功人士的新創公司,專職開發後端。沒想到卻在採前人坑的過程中,拓寬了眼界,得到了深層的領悟。