天天看點

Mac下自帶Python2.7更新到3.6

1. 前言

Mac系統自帶python2.7,本文目的是将自帶的python更新到3.6版本。

網上有本多的做法是讓python2.7和python3.X兩個版本共存,部落客并不知道,是兩版本共存好,還是直接更新好,是以讀者要慎重選擇方法。

2. 關閉Rootless機制

由于Mac下的python2.7 預設是安裝在/System目錄下的。但是~~~Mac有個Rootless機制,預設不允許直接在/System下作修改。是以要先關閉Rootless機制。

關閉Rootless機制的方法:

關閉:

1).重新開機電腦, 重新開機過程中按住command+R, 進入恢複模式

2).打開terminal,鍵入: csrutil disable

3).重新開機電腦

如果之後要再開啟Rootless機制,方法如下:

開啟:

1).重新開機電腦, 重新開機過程中按住command+R, 進入恢複模式

2).打開terminal,鍵入: csrutil enable

3).重新開機電腦

3. 下載下傳安裝python3.6

從官網https://www.python.org/downloads/

下載下傳pkg版本,并安裝。安裝選預設路徑,會安裝到/Library/Frameworks/Python.framework/Versions/目錄下

4. 删除python2.7

sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
           

5. 移動python3.6

将python3.6安裝到/System/Library/Frameworks/Python.framework/Versions/目錄下:

sudo mv /Library/Frameworks/Python.framework/Versions/3.6 /System/Library/Frameworks/Python.framework/Versions
           

6. 修改檔案所屬的Group

設定Group為wheel,原來系統自帶的就是這樣的。

sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.6
           

7. 更新一下Current的Link

在Versions的目錄裡有一個Current的link,是指向目前的Python版本,原始是指向系統自帶的Python2.7,我們把它删除後,link就失效了,是以需要重新鍊一下

sudo rm /System/Library/Frameworks/Python.framework/Versions/Current
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6 /System/Library/Frameworks/Python.framework/Versions/Current
           

8. 重新連結可執行檔案

  1. 先把系統原來的執行檔案删掉
sudo rm /usr/bin/pydoc
sudo rm /usr/bin/python
sudo rm /usr/bin/pythonw
sudo rm /usr/bin/python-config
           
  1. 建立新的連結
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/pydoc3.6 /usr/bin/pydoc
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /usr/bin/python
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/pythonw3.6 /usr/bin/pythonw
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6m-config /usr/bin/python-config
           

9. 更新.bash_profile檔案

預設的bash_profile裡python的bin是指向/Library/Frameworks/Python.framework/Versions/3.6/bin的。要改到/System/目錄下

vim ~/.bash_profile (隻要能編輯就行)插入新的Python路徑

# Setting PATH for Python 3.6

# The orginal version is saved in .bash_profile.pysave
PATH="/System/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH
           

我預設是沒有.bash_profile這個檔案的,直接自己建立喽。

10. 解除安裝pkg安裝的python3.6

這一步不做,在使用pip3指令時還是要出錯的(它預設連接配接到/Library/目錄下照pip3指令,但是實際上應該到/System/Library/目錄下找)。部落客掉這個坑好久。

我用的是CleanApp這個軟體來解除安裝原來pkg安裝的python3.6,安裝進來的兩個軟體都解除安裝。

11. 測試

在指令行中,用pip -V和pip3 -V檢視版本和位置。用python進入。

Mac下自帶Python2.7更新到3.6

Mac下更新python2.7到python3.6,更新成功

參考:

https://www.jianshu.com/p/99739ebad461