[英]MacOS: How to downgrade homebrew Python?
我正在運行 MacOS Sierra 10.12.4,我意識到自制 python 已升級到版本 2.7.13。 如何切換回 2.7.10?
您可以使用brew switch
切換版本。 例如,我只是像這樣將 Python 3.7.0 降級到 3.6.5:
brew switch python 3.6.5
不幸的是, brew versions
命令已被棄用,目前查找可用版本非常復雜。 我很想聽到一個簡單的解決方案。 同時,如果您知道要切換到的版本,請嘗試上述命令。
我同意這里的答案,virtualenvs 是一個好主意,但在自制軟件中擁有您需要的 Python 版本也是一個好主意。 我的 virtualenv 的創建方式, bin/python
是/usr/local/bin/python
的符號鏈接,所以當 Python 通過自制軟件更新時,事情就壞了。
首先,如果可以避免的話,依賴系統 python 來獲取用戶土地代碼通常被認為是不好的做法。 您需要假設系統實用程序需要特定版本的系統 python,然后您的用戶土地代碼可能會永遠鎖定到該 python 版本,這是不明智的(除非您正在編寫系統實用程序,在這種情況下只需使用 /bin /python,但那樣你就不會問這個問題了......)。
其次,我不清楚你為什么需要 2.7.10 而不是 2.7.13。 具有相同次要修訂號 (2.7) 的所有 python 應始終兼容。 如果您需要 2.6,那將是另一回事,因為這是次要版本的更改。 為 2.7.x 編寫的代碼應該都是兼容的。
但是,假設您的用例確實需要使用特定的 Python 版本——現在就得到一個實際的解決方案——確保你真的從一開始就升級了系統 python。 如果您輸入命令: which python
,您會得到/usr/bin/python
(system) 還是/usr/local/bin/python
(brew installed user-land python)。 例如, /usr/bin/python -V
給了我 2.7.10,即使python -V
給了我 2.7.13(通過 brew)。
您可能通過brew
安裝了最新的 python 2.7.x,它將/usr/local/bin/python
作為符號鏈接放在您的$PATH
,或者您可能有一個python
別名指向您不想要的地方。 驗證您的 $PATH 順序。
您可以通過刪除它( brew uninstall python
)或更改符號鏈接( ln -s -f /usr/bin/python /usr/local/bin/python
)來重置您的自制python。 然而,使用 virtualenv 消除了對大部分此類體操的需要。
如果您想使用通過自制軟件安裝的先前版本的 Python,這個答案應該會有所幫助: 如何使用 Brew 安裝舊公式?
最后一個選擇:如果你絕對必須有一個特定的 python 版本, pyenv可以提供幫助。
brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
從https://www.python.org/downloads/release/python-360/下載 python 3.6.0
將其作為普通包安裝。
運行cd /Library/Frameworks/Python.framework/Version
運行 ls 並且所有已安裝的 Python 版本都將在此處可見。
運行sudo rm -rf 3.7
現在通過python3 -V
檢查版本,現在是 3.6。
無需降級 python,因為您可以在系統上同時使用它們。
您希望使用 python 2-x 編譯文件的位置。
python2 or python2-x filename.py
以及你需要 python 3 的地方
python3 or python3-x filename.py
python 的默認用法將導致使用最新版本,降級到特定版本是一件很頭疼的事,因為它不是直接的,因為 python 沒有從 3-x 向后兼容 2-x。
這不是問題的直接答案,而是解釋了避免接觸系統 python 的解決方案。
一般的想法是您應該始終為您的項目安裝獨立的python。 每個項目都需要自己的 Python 版本(出於與庫的兼容性原因),保留一個 Python 版本並試圖使其適用於多個項目是不切實際的。
我假設您的系統中發生此問題是因為另一個項目需要更高版本的 Python,而現在對於您的另一個項目,您需要更低版本的 Python。
處理 python 版本的最好方法是使用 virtualenv。
每個項目都有自己的python,因此您可以擁有使用python 2.7和python 3的項目,並且它們從不接觸彼此的依賴項。
使用自制軟件安裝不同的 python 版本,然后在創建 virtualenv 時為每個項目決定選擇哪個 python。 每次使用該項目時,python 版本將是您在創建 virtualenv 時自己選擇的版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.