MAC OSX 正確地同時安裝 PYTHON 2.7 和 PYTHON3
Python3 出來了(其實已經出來很久了,暈)!
但是還是有很多 library 還是使用 Python2.7,所以要怎麼在 Mac 裡面同時裝這兩個版本,並且和系統所使用的 Python 區分開來呢?今天要寫的是如何第一次就正確安裝好,並且切換預設版本,不在誤用系統的 Python。
主要就這幾個步驟而已,不會太困難的(或許有些你本來就裝好了)
- Step 1 安裝 Xcode
- Step 2 安裝套件管理工具 Homebrew
- Step 3 安裝 Python
- Step 4 設定路徑 $PATH(不跟系統 Python 打架)
- Step 5 完成囉!確認安裝結果~
STEP 1 安裝 XCODE
可以到 App Store 搜尋 Xcode 並安裝
安裝好了之後就把 Xcode 打開~
第一次開啟的時候會需要同意他的 License Agreement 之類的東西。
然後到 terminal 輸入來安裝 Xcode command line tool:
1
|
xcode-select --install
|
安裝 Xcode 就到此結束囉,要進入下一個步驟了!
STEP 2 安裝套件管理工具:HOMEBREW
可以到官網或是在 terminal 裡貼上:
1
|
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
安裝好後可以跑一下
1
|
brew doctor
|
如果出現
Your system is ready to brew.
代表萬事 OK,那如果有 Warning 的話,也不用太擔心,可以按照裡面的步驟去修正就好囉!
如果有出現 Warning 的話,雖然會在上面看到一句
If everything you use Homebrew for is working fine: please don’t worry and just ignore them.
不過還是建議大家把東西裝好,才不會到時候忘記自己到底什麼東西還沒設定好。
STEP 3 安裝 PYTHON
接下來要正式進入安裝 Python 的步驟了!
首先,輸入
1
|
python --version
|
天哪!都還沒開始裝 Python,電腦裡面怎麼已經有了?
這是 Mac 系統要使用的 Python,所以平常沒適不要去亂動比較好唷!
所以現在我們要用 homebrew 來安裝平常可以(亂搞?)使用的 Python。
利用 homebrew 搜尋 Python
1
|
brew search python
|
這時候,會看到 python 和 python3。
因為我已經裝了,所以旁邊會寫 (installed)。
要安裝 Python 囉!
1
|
brew install python
|
這樣就開始安裝了。
裝完之後在輸入
1
|
brew install python3
|
在安裝的時候,Python 會被安裝在
/usr/local/Cellar
那就來看看這個資料夾吧
1
|
open /usr/local/Cellar/
|
就可以看到你正在安裝的 Python 出現了!
除了 Python 之外,也有可能會裝一些其他的東西,例如 sqlite。
總之,不用太擔心,homebrew 會自己搞定。
(因為我裝了很多哩哩摳摳,所以你的資料夾裡可能不會有這麼多東西)
STEP 4 設定路徑 $PATH(不跟系統 PYTHON 打架)
什麼是路徑 $PATH 呢?
還記得我們在裝 Python 的時候,輸入了 brew,
系統就自動會知道要開始跑 homebrew。
系統到底怎麼知道我們的 brew 在哪裡?
這就是 $PATH 的用途了!
1
|
echo $PATH
|
接下來就會看到一串類似這樣的東西
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
分號 (:) 是分隔的意思
所以當你在 terminal 裡面輸入 brew 時
系統就會開始從 /usr/bin 找起
如果在 /usr/bin 裡面找不到的話
就會往下一個 /bin 去搜尋,以此類推
現在,我們回到資料夾去看
brew 其實就在 /usr/local/bin 裡面!
所以現在的問題就是,系統在 /usr/bin 裡面也有一份 Python
現在我們在 /usr/local/Cellar 裡面也裝了 Python
這樣在 terminal 打上 python 指令時,誰會被開啟呢?
因為路徑有順序,所以它會先找到系統的 Python
現在就要來解決這個問題
1
|
sudo emacs /etc/paths
|
sudo 讓我們取得管理員權限
用 emacs 這個程式編輯路徑檔案
terminal 會要求輸入密碼
(就是平常裝東西也需要輸入的密碼)
現在要把 /usr/local/bin 移到上面去
control + k:把一行字剪下來
control + y:把字貼上
control + x + s:存檔
control + x + c:關掉 emacs
這時,再打一次
1
|
echo $PATH
|
為什麼沒有變!?
因為要開一個新的 terminal 才會更新唷!
開新式窗後再輸入一次就會看到我們剛剛修改的結果了。
STEP 5 完成囉!確認安裝結果~
這樣就完成囉!
其實 python3 本身比較不會跟其他人打架
因為他就是獨立的 python3
所以我們主要是要確認是不是讀到我們用 brew 裝的 python
1
|
which python
|
這時候看到
/usr/local/bin/python
再來看看 python3 吧
1
|
which python3
|
應該會是
/usr/local/bin/python3
就代表讀到剛剛裝好的 python 囉!
當然如果你要跑系統本身的 python
(應該是用不到啦~)
就輸入
1
|
/usr/bin/python
|
總之就是…大功告成囉!
多谢,解决了我的很小白的疑惑。
我为什么安装的还是python2.7.13,而不是python3
事实上,不需要安装xcode也可以安装Xcode command line tool
是的,晚點再做修改,謝謝指正:)
詳細安裝方式也可以參考這篇
http://railsapps.github.io/xcode-command-line-tools.html
可以砍掉mac上的python2.7么?
如果是系統內建的話,不行唷:)
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don’t worry and just ignore them. Thanks!
Warning: Python is installed at /Library/Frameworks/Python.framework
Homebrew only supports building against the System-provided Python or a
brewed Python. In particular, Pythons installed to /Library can interfere
with other software installs.
麻烦问下,这样咋整
一般來說 homebrew 會裝到 /usr/local/bin 下面
可能是之前有從 python 官網裝過
可以先移除該版本的 python 再從 homebrew 裝 python
或是在 $PATH 裡面把 /usr/local/bin 移到 /Library/Frameworks… 前面
执行echo $path 出来的结果为什么和sudo emacs /etc/paths看到的不一样呢?
其实不用改系统PATH的,在用户目录加一个.bash_profile文件,然后加一行
export PATH=”/usr/local/opt/python/libexec/bin:$PATH”。
当前用户就会自动切换成brew安装的python了。
[…] https://stringpiggy.hpd.io/mac-osx-python3-dual-install […]
useful!