如何在 mac 上面同時安裝 python2 和 python3
Python16 Feb 2017
在網路上尋找學習 python 的學習文件時,時常看到這樣的問題。因為現今仍有許多的東西是使用 python 2 來寫的,但新的 python 3 又提供許多方便的用法,那我們到底該使用哪一版呢?
老實說,我只是一個剛要學習 python 的新手,這麼高深的問題我自然是回答不出來。目前是打算先學 python 3,但是舊的 python 2 程式碼也希望他能執行一些範例程式。因此,把兩個都裝進電腦裡應該是最保險的做法了。
Reference
Mac 在安裝上實在是非常便利又簡單,這次我參考的是下面這篇文章,寫得簡單又精美,非常感謝作者!
Prepare
第一步,我們先安裝一個好用的套件管理工具 HowBrew 官網中提到我們只需要在 terminal 中貼上以下指令即可
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝之後檢查一下沒有裝好
$ brew doctor
只要出現 Your system is ready to brew.
這樣的字眼就是安裝好囉。
利用這個方便的套件管理工具,我們接下來就要再其之下安裝 python。
Install Python
接下來就是要裝python了,首先我們可以看一下macOS原本就有的預設 python
$ python --version
在我的電腦上,使用的是 Python 2.7.13
我們現在要做的是利用 homebrew 來裝與系統預設分開的套件,如此一來就算我們把套件搞爛了,也不會影響到系統原生的 python。
$ brew install python
$ brew install python3
這兩條指令分別安裝的是 python2 與 python3。
安裝結束之後,我們在 /usr/local/Cellar
可以找到一個 python 和一個 python3 的資料夾。
Adjust the Environment Path
當我們打開 terminal 要使用某支程式的時候,如果只輸入程式名稱(不包含路徑),系統怎麼知道我們把程式放在哪裡呢?像是上面的 $ python --version
,系統怎麼知道要去哪裡找 python 這支程式呢?
答案是參考系統中的環境變數( Environment Path )中儲存的路徑名稱依序一個一個去搜尋,在該路徑下面第一個找到的程式就是我們的目標。
首先我們先來看看我們的環境變數長成什麼樣子
$ echo $PATH
輸入後我得到的結果如下:
$ /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
其中冒號是分隔兩個路徑的意思。前面提到說系統會依照順序一個一個去找整個資料夾,直到跑完環境變數給的所有資料夾或是找到目標為止。
因此,為了要讓系統優先叫用我們安裝在 homebrew 底下的 python,請將 /usr/local/bin
移到 /usr/bin
之前,前面的是我們資料夾會存放我們使用 homebrew 安裝的 python binary 檔。而後面的則是存放系統預設安裝的 binary 檔案。
環境變數存放的檔案位於/etc/paths
,請用自己習慣的文字編輯器打開來編輯吧。我自己是用 vim 來做修改
$ vim /etc/paths
在我的例子中,原本的順序就挺不錯了,因此我就不需要去更改他。若是有修改的話,更改完之後請重新啟動 terminal,然後再次查看環境變數有沒有被正確地更改。
Finish
基本上到此為止我們已經完成 python 2 跟 python 3 的安裝了,可以查看一下他們各自的版號。
利用 which
來查看他們的路徑。
$ which python
/usr/local/bin/python
最後,如果真的要使用系統預設的 python 的話,就直接輸入路徑吧。
$ /usr/bin/python
Thanks
這篇只是我自己的一個紀錄,跟我上面參考的網誌基本上一模一樣。在此非常感謝原作者分享這麼棒的文章。