標籤:

Mac OS X 上如何切換默認的 Python 版本?

系統版本OS X Yosemite 10.10.3,自帶的Python版本是2.7.9。

python3.4已經成功安裝,在Terminal里輸入命令python3.4可以正常用3.4.3工作,但是輸入命令python則還是默認是2.7.9

請問該如何做到,在終端里直接輸入「python」命令就會運行3.4.3的py版本?

謝謝各位回答,問題解決了,反饋一下。

首先終端的「python」命令會執行/usr/local/bin下的「python」鏈接,鏈接相當於win下的快捷方式,現在鏈接指向了python2.7.9的解釋器。我們改一下這個鏈接就好了,建議先備份這個「python」鏈接,比如像我:

mv /usr/local/bin/python /Users/python_backup

接著把3.4.3的解釋器做一個鏈接到原目錄下,請適當修改相關路徑:

sudo ln -s /System/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /usr/local/bin/python

完成。


最權威的回答:(親測有效!)

① Mac系統自帶的python環境在:

Python 2.7.10: /System/Library/Frameworks/Python.framework/Versions/2.7

其中,解釋器在該目錄下的 ./bin/python2.7

Python 2.6.9: /System/Library/Frameworks/Python.framework/Versions/2.6

其中,解釋器在該目錄下的 ./bin/python2.6

② 用戶安裝的python環境默認環境在:

Python 3.4.2: /Library/Frameworks/Python.framework/Versions/3.4

其中,解釋器在該目錄下的 ./bin/python3.4

Python 2.7.7: /Library/Frameworks/Python.framework/Versions/2.7

其中,解釋器在該目錄下的 ./bin/python2.7

注意:一般用戶再裝一遍python環境的時候,在終端的輸入python命令,默認啟動的python命令是當前用戶安裝的python版本環境(即:系統默認的py啟動路徑,由原來的mac系統默認的解釋器變為當前用戶安裝的py解釋器)

③ 用戶安裝Anaconda3後,自帶的python環境在:

Python 3.4.1: /Users/steven/Anaconda3 (anaconda在安裝時候的自定義路徑)

其中,解釋器在該目錄下的 ./bin/python3.4

④ 用戶安裝anaconda後,自帶的python環境在:

Python 2.7.8: /Users/steven/anaconda

其中,解釋器在該目錄下的 ./bin/python2.7

注意一個小問題(跟本題無關):

在命令行下,直接輸入

StevenLiu-MacBookPro:bin steven$ pwd

/Users/steven/Anaconda3/bin #在python3的環境變數下

StevenLiu-MacBookPro:bin steven$ ./python #根據當前路徑找解釋器

Python 3.4.1 |Anaconda 2.1.0 (x86_64)| (default, Sep 10 2014, 17:24:09)

[GCC 4.2.1 (Apple Inc. build 5577)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

&>&>&> quit()

StevenLiu-MacBookPro:bin steven$ python#如果沒有輸入「./」,則進入的是系統當前默認的python環境

Python 2.7.8 |Anaconda 2.1.0 (x86_64)| (default, Aug 21 2014, 15:21:46)

[GCC 4.2.1 (Apple Inc. build 5577)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

Anaconda is brought to you by Continuum Analytics.

# 這裡由於設置了anaconda中的python解釋器為默認的python,所以不是

/Library/Frameworks/Python.framework/Versions/2.7

其他:

Mac系統自帶的python環境默認啟動路徑在:/usr/bin

用戶安裝的python環境默認啟動路徑在:/usr/local/bin

終端輸入: 「python」命令會執行/usr/local/bin下的「python」——在沒有配置文件改變該默認路徑的條件下。

最終答案(重點)

Mac在啟動,會先載入系統配置文件(包括~/.bash_profile ),所有默認的命令的路徑,將會配配置文件(比如:~/.bash_profile)中的路徑覆蓋,並且,是後面覆蓋前面的路徑:例如,在終端輸入「python」,系統會在配置文件中的路徑查找,一直到找到位置(在配置文件中從後向前找):

例如:當前.bash_profile的內容為:

5 # Setting PATH for Python 2.7

6 # The orginal version is saved in .bash_profile.pysave

7 PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"

8 export PATH

9

10 # Setting PATH for Python 3.4

11 # The orginal version is saved in .bash_profile.pysave

12 PATH="/Library/Frameworks/Python.framework/Versions/3.4/bin:${PATH}"

13 export PATH

14

15 # added by Steven Liu

16 export PATH="/Users/steven/Anaconda3/bin:$PATH"

17

18 # added by Anaconda 2.1.0 installer

19 export PATH="/Users/steven/anaconda/bin:$PATH"

20

21 # added by Anaconda3 2.1.0 installer

22 export PATH="/Users/steven/Anaconda3/bin:$PATH"

23

24 # Setting PATH for Subversion 1.9.0

25 export PATH="/opt/subversion/bin:$PATH"

26 #export PATH="/usr/bin:$PATH"

根據該腳本,先會去找 /opt/subversion/bin 中,有沒有命名為「python」的可執行文件(或是快捷方式),如果沒有,則往上找,接著找 /Users/steven/Anaconda3/bin ,發現有,就為當前路徑下的解釋器環境。—— 所以,想設置python的版本,直接把你想添加的路徑export上去,並放在後面。實測有效!


沒必要改來改去, 還是直接加版本號比較好, python就是2的版本,python3就是3的版本. pip是2的版本, pip3是3的版本.


強烈建議不要直接sudo ln -s (會直接覆蓋系統原來的link導致想調用自帶python的軟體出現問題),修改path variable雖然比較安全,但對於你的需要是沒有太大必要的。

想要實現你的如下要求

在終端里直接輸入「python」命令就會運行3.4.3的py版本?

直接在.profile加一個alias就可以了。如果你的Terminal運行的shell是bash(默認),可以修改~/.bash_profile,添加下行(具體的path取決於你的python3安裝路徑):

alias python="/System/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4"

然後重啟一下Terminal或者直接

source ~/.bash_profile

----

20150925更新:之前把.profile文件寫成了Linux的,現在應該是Mac默認的了

----

另外,建議包管理用home brew,那是個神器啊...


不要更改默認的python2,每次執行直接輸入 python3 XXX.py就好。

改了會導致系統某些用python2寫的系統文件出錯。


難道大家不覺得在terminal中輸入python filename.py的方式很麻煩嗎?個人覺得在sublime中command+b運行python更方便,而且通過自己寫build system來隨意切換python版本。

1.mac中python的安裝

mac系統會自帶python,一般是python2.6或python2.7。但是你可能需要用到python3.x,所以需要自己在mac系統中安裝python。推薦採用homebrew安裝python。

第一步安裝homebrew,在terminal中輸入命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

使用homebrew安裝python3,在terminal中輸入:

brew install python3

會安裝最新版的python

2.使用sublime編譯py文件

sublime自帶有python的編譯系統,在sublime中的Tools-build system中:

在上圖中選擇python,在py文件中按command+b就會用python編譯運行。選最上方的automatic,sublime會根據文件類型選擇編譯器。

3.sublime text中可以自己寫build system,首先看看效果:

可以看到裡面有Python和Python-3.6兩個編譯選項。下面介紹怎麼編寫這個新的Python-3.6的編譯選項。參考Build Systems - Basics。

首先Tool - build system - New build system,這個會打開一個新的文檔,裡面有這樣的代碼:

{
"shell_cmd": "make"
}

刪掉上面的代碼,然後將下面的代碼粘貼到文檔里:

{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
"selector": "source.python"
}

下面解釋這段代碼的含義:

"cmd": ["python", "-u", "$file"],
這段就相當於在terminal中輸入:python -u file

要使用python3.6編譯文件,需要將上面的python替換為python3.6所在的路徑,在terminal中輸入:

which python3.6

得到路徑:/usr/local/bin/python3.6。替換之後得到:

{
"cmd": ["/usr/local/bin/python3.6", "-u", "$file"],
"file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",
"selector": "source.python"
}

保存這個文件,命名Python-3.6。之後在build system中就可以找到了。寫好的文件在sublime packages文件夾中:


https://github.com/yyuu/pyenv


我們可以利用修改~/.bashrc 來達到目的。

在shell啟動的時候會讀取 ~/.bashrc文件,你可以在這個文件里指定一些自己常用的命令。

  1. 首先確認自己已經下載了python3.x版本,最新的已經3.5以上了。

  2. 然後在終端輸入

    python

    按tab鍵不要按回車,此時會有提示各種和python有關的信息,找到最新的python版本號,比如python3.5。

  3. 然後 終端運行

    open ~/.bashrc

    來打開 .bashrc文件

  4. 在文件中添加

    alias python="python3.5"

    這句話的意思就是 讓python與phthon3.5等價,所以你每次在shell中輸入python也就相當於輸入了phthon3.5了

  5. 然後重新打開終端,此時運行

    phthon


https://github.com/qw3rtman/p


推薦mac上很好用的小工具macports。

我們可以使用 port select 指令切換 Python 系統,比如

$ sudo port select python

Available versions for python:

none

python25-apple

python26-apple

python27

python27-apple (active)

這代表目前使用的是 Mac OS 內建的 Python 2.7,我們可以切換掉 MacPorts 內建的 Python 2.7

$ sudo port select python python27

這時候 Python 系統已經被切到 MacPorts 下的 Python 2.7 了


沒必要切換啊。直接在自己寫的程序里加上

/usr/bin/env python3

就行了。


我看完了所有答案也試了好幾個,有的有效有的無效,結果發現其實最簡單的方法就是,每次你在終端打開python的時候,直接輸入python3,打開的就是3.幾的版本,打開文件也是如此,希望不要貿然更改覆蓋2.幾的版本,蘋果用戶如果需要用到xcode,那麼在你修改成3.幾的版本以後你會發現xcode根本不支持3.幾的python


很簡單,首先你要知道python這個命令位置,拿自己電腦來說

$ which python
/usr/local/bin/python

其實這個python文件只是個鏈接(類似win里快捷方式)

li12242:~ mac$ ls -l /usr/local/bin/python
lrwxr-xr-x 1 mac admin 33 2 22 14:54 /usr/local/bin/python -&> ../Cellar/python/2.7.9/bin/python

把它備份,然後用你新的python解釋器鏈接到這裡即可

$ mv /usr/local/bin/python /usr/local/bin/python_backup
$ ln -s &<你的python3.4 目錄&>/python3.4 /usr/local/bin/python


現在的知乎全是無知的學生和低端人才濫竽充數。什麼人都能開專欄,找些新聞加工一下就想騙關注。這一切都為了一件事:發軟文賺錢。

平台利欲熏心,言論管制,已經銅臭腐敗了,沒必要再繼續呆了。這裡遲早淪為軟文根據地,以及誤人子弟的網路教學課堂。


直接 寫Python的版本 號 就能就入響應的版本


使用VSCODE很方便切換。看圖:

1:打開設置

2.找到Python配置

3.複製這個路徑到右側修改配置,達到覆蓋的效果。


terminal中直接輸入 python3 即可使用python3,python3 --version查看版本


分頁阅读: 1 2