簡體   English   中英

MacOS:如何降級自制 Python?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM