轉載-https://www.cnblogs.com/windyet/articles/9338876.html
1、前言
Mac系統(tǒng)自帶python2.7踱葛,本文目的是將自帶的python升級到3.7版本丹莲。
網(wǎng)上有本多的做法是讓python2.7和python3.X兩個版本共存,博主并不知道尸诽,是兩版本共存好甥材,還是直接升級好,所以讀者要慎重選擇方法性含。
- 關閉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)重啟電腦
——沒有關閉的時候理张,一下目錄無法寫和執(zhí)行:
/System
/bin
/sbin
/usr (except /usr/local)
- 下載安裝python3.7并安裝雾叭。
從官網(wǎng)https://www.python.org/downloads/下載pkg版本,并安裝暂幼。安裝選默認路徑,會安裝到/Library/Frameworks/Python.framework/Versions/目錄下
- 刪除python2.7 - 此步驟不需要管行,否則無法啟動xcode
sudo rm -R /System/Library/Frameworks/Python.framework/Versions/2.7
——如果您是iOS開發(fā)者,請不要升級python,因為Xcode使用的2.7的腳本,不支持3以上版本!!!
5捐顷、移動Python3.7到system的python目錄下:
sudo mv /Library/Frameworks/Python.framework/Versions/3.7 /System/Library/Frameworks/Python.framework/Versions/3.7
———— 原先/System/Library/Frameworks/Python.framework/Versions這個目錄下已經(jīng)有了2.3雨效、2.5徽龟、2.6、2.7版本了∠纺纾現(xiàn)在只是把3.7版本再移動進去
————如果沒有第二部步關閉rootless旷祸,則移動的時候讼昆,因為要移動到System目錄下,是不會被允許的闰围。
- 修改文件所屬的Group
設置Group為wheel羡榴,原來系統(tǒng)自帶的就是這樣的运敢。
sudo chown -R root:wheel /System/Library/Frameworks/Python.framework/Versions/3.7
——使用ls -l传惠,就可以直接看到文件/目錄的所屬用戶和所屬群組
7、更新一下Current的Link
在Versions的目錄里有一個Current的link羊瘩,是指向當前的Python版本尘吗,原始是指向系統(tǒng)自帶的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
————注意蜕猫,我們第4步并沒有刪除2.7哎迄,但是仍然刪除了目前的,并重新link到了3.7的版本
8翔烁、重新鏈接可執(zhí)行文件
- 先把系統(tǒng)原來的執(zhí)行文件刪掉
sudo rm /usr/bin/pydoc
sudo rm /usr/bin/python
sudo rm /usr/bin/pythonw
sudo rm /usr/bin/python-config
- 建立新的鏈接
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.7/bin/pydoc3.7 /usr/bin/pydoc
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 /usr/bin/python
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.7/bin/pythonw3.7 /usr/bin/pythonw
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7m-config /usr/bin/python-config
- 更新.bash_profile文件
默認的bash_profile里python的bin是指向/Library/Frameworks/Python.framework/Versions/3.7/bin的蹬屹。要改到/System/目錄下
復制代碼
// 1慨默、vim打開~/.bash_profile
vim ~/.bash_profile
// 2厦取、修改PATH的路徑 - 其實只是少了個/System
Setting PATH for Python 3.6
The orginal version is saved in .bash_profile.pysave
PATH="/System/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH
復制代碼
——原來的路徑是安裝的默認路徑管搪。
- 卸載pkg安裝的python3.7 - 待處理
這一步不做更鲁,在使用pip3命令時還是要出錯的(它默認連接到/Library/目錄下照pip3命令,但是實際上應該到/System/Library/目錄下找)朋沮。博主掉這個坑好久樊拓。
我用的是CleanMyMac這個軟件來卸載原來pkg安裝的python3.7,安裝進來的兩個軟件都卸載蒂胞。
鏈接pip到相應的位置:
sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.7/bin/pip3.7 /usr/bin/pip
——請注意骗随,此時pip3鏈接到了/usr/bin/pip赴叹,所以你執(zhí)行pip命令的時候,實際上執(zhí)行的是System/...下的pip3.7涨椒,但是此時的/usr/pip默認指向的目錄是:
Library/Frameworks/Python.framework/Versions/3.7/bin/pip3.7蚕冬,也就是安裝時候的目錄是辕。
所以你需要手動修改成System下的目錄:
// 1、vim打開
sudo vim /usr/bin/pip
// 修改第一行赢乓,把它改成正確的路徑即可石窑。原路徑為安裝路徑松逊,沒有System,正確路徑如下:
!/System/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
- 測試
在命令行中犀暑,用pip -V和pip3 -V查看版本和位置。用python -V查看版本和位置
————好了烁兰,python更新完畢。謝謝广辰。