如何在 Mac OS X 上正確更新 Python

如何在 Mac OS X 上正確更新 Python

如果我從 Python 網站下載 python 並嘗試使用安裝程式安裝它,它會安裝,但當我從終端機執行程式時,我需要指定我需要新版本的 Python。如果我只是輸入:

python app.py

它與舊版本一起運行。

如何將新版本設定為預設版本?

答案1

我終於找到該怎麼做了。安裝程式在 /Application 中建立了一個 python 2.6 資料夾,在此資料夾中有一個名為 Update Shell Profile.command 的腳本,我只需要執行它,現在它就可以工作了。

答案2

兩個問題:

  1. 新的Python安裝在哪裡?
  2. 你的 $PATH 是什麼樣的?

類 Unix 系統上的預設設定是使用者安裝的軟體安裝在 /usr/local/bin 中,大多數 *nix 發行版都放置該目錄預設 $PATH 變數中的系統範圍目錄(這就是 shell 知道在哪裡尋找程式的方式)。這樣,如果您安裝新的東西,新的項目就會首先被找到。

然而,預設的 OS X $PATH 看起來像這樣:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

問題是透過把/usr/local/bin這麼晚了,系統範圍內的Python(位於/usr/bin所以在你的 $PATH 的早期)不斷受到打擊。

我的答案是讓我的 $PATH 在 Mac 上看起來像這樣:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

為此,請建立一個文件在你的主目錄中並加入以下內容:

#### Let's take care of our $PATH
# A backup of the original $PATH
# /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

# My preferred order - /usr/local goes first, damn it!
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

編輯:我在這裡跟進,而不是在評論中,因為評論太長了。你的行來自/sw/bin/init.sh套件管理器芬克,我假設您使用(或在某些時候使用過)。另一行似乎表明您在某個時候安裝了 MacPython,並且它$PATH為您重寫了您的 MacPython。我不知道 MacPython,但如果是的話這個網站,那麼它自 2004 年以來就沒有更新過。

所以現在我更困惑了:你什麼時候會更新Python?你是怎麼更新的?您執行的是哪個版本的 OS X?

答案3

找出 python 的位置:

$ which python
/usr/bin/python

看看它是否是符號連結:

$ ls -Fal /usr/bin/python
lrwxr-xr-x  1 root wheel  72 May 19 12:02 /usr/bin/python@ -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python

如果是這樣,請將 /usr/bin/python 連結到新的 python:

$ sudo ln -s (new python, maybe /System/Library/Frameworks/Python.framework/Versions/2.x/bin/python) /usr/bin/python

檢查是否有效:

$ python --version
Python 2.xxx

相關內容