MacOS上的Python路徑問題&安裝方法

本篇文章將解釋MacOS上的Python路徑還有幾種安裝方式

Denis Hsieh
Denis Brain
4 min readJan 17, 2017

--

https://www.python.org/static/community_logos/python-logo-master-v3-TM-flattened.png

MacOS上Python的路徑

Python的路徑大致上分為兩種,一種是作業系統本身的(Apple-provided build of Python),另一種是使用者自己安裝的(User build of Python)

  • Apple-provided build of Python

路徑在“/System/Library/Frameworks/Python.framework”還有“/usr/bin/python”,官方建議[1]不要對這版本進行修改與刪除,因為這是由Apple公司控制與使用或其他third-party software使用的。

目前在MacOS Sierra上的版本為Python2.7。

  • User build of Python

由使用者自行安裝的版本,基本上怎麼修改都不會影響到系統的運作(也就是不會影響到Apple-provided build of Python),所以大可放心進行修改設定。但是由於安裝方式的不同也會讓Python的路徑產生些許差異,詳細請往下繼續閱讀⬇︎

安裝Python的幾種方式

大致上分為以下幾種

  • 由Python官網下載安裝包
  • Homebrew
  • Pyenv
  • 由Python官網下載安裝包

安裝路徑在/Library/Frameworks/Python.framework還有/usr/local/bin/這兩個位置,後者是一個symlink。另外,安裝包也會附帶IDLE、PythonLauncher這兩個軟體,安裝在Application資料夾。

如果要移除Python的話,只要將上述兩個路徑的檔案還有IDLE、PythonLauncher刪除即可。

  • Homebrew

要用Homebrew安裝的話,當然第一步就是要先裝Homebrew[2],安裝完畢後,在command-line輸入

即可安裝最新版本的Python3

若要移除,就輸入

詳細步驟可以參考這篇文章Installing Python on Mac OS X[3]

安裝完成後,路徑會在“../Cellar/python3/3.5.1/bin/python3.5”(以Python3.5為例),也會有個symlink在“/usr/local/bin”。

  • Pyenv

使用Pyenv目前是我覺得最好的方式。Pyenv可以安裝multiple Python versions,滿足開發者需要在不同的版本下做測試的需求。Pyenv可以切換不同Python版本,而且切換後的版本也會變成當下系統全域可使用的,若需要其他版本再進行切換即可。也可以搭配虛擬環境使用,避免套件污染的問題。

詳細的安裝及使用方法可以參考此篇文章Using pyenv to install & manage multiple python versions[4]

這裡的路徑稍有複雜,以下說明。一切安裝完成後,輸入指令

會出現這樣的路徑

但如果輸入指令

結果會像這樣

連結對應到的位置與上面並不相同,這是為什麼呢?因為Pyenv具有全域切換版本的功能,所以在其實在/usr/local/bin底下的symlink是連結到用Homebrew安裝Pyenv的位置,然後再由Pyenv決定調用哪個版本,而各種Python版本則安裝在家目錄裡的.pyenv底下,大致概念如此,若要再更詳細了解可能就要去研究他的程式碼了[5]。

References

[1] 4.1. Getting and Installing MacPython

[2] Homebrew — macOS 缺少的套件管理工具

[3] The Hitchhiker’s Guide to Python! — Installing Python on Mac OS X

[4] Anil Lakhman — Using pyenv to install & manage multiple python versions

[5] Github — yyuu/pyenv

--

--

Denis Hsieh
Denis Brain

人生就是在絢爛與平靜中,不斷循環的過程。