MacOS:如何降级自制Python?

leo*_*ota 12 python macos homebrew

我正在运行MacOS Sierra 10.12.4并且我意识到自制的python已升级到版本2.7.13.如何切换回2.7.10?

Jos*_*edy 25

您可以使用切换版本brew switch.例如,我只是将Python 3.7.0降级为3.6.5,如下所示:

brew switch python 3.6.5
Run Code Online (Sandbox Code Playgroud)

不幸的是,该brew versions命令已被弃用,目前找到可用版本非常复杂.我很想听到一个简单的解决方案.同时,如果您知道要切换到的版本,请尝试以上命令.

我同意这里的答案,virtualenvs是一个好主意,但拥有自制软件所需的Python版本也是一个好主意.我的virtualenvs的创建方式bin/python是一个符号链接/usr/local/bin/python,所以当Python通过自制软件更新时,事情就破裂了.

  • `错误:python 在地窖中没有版本“3.6.5”。` (5认同)
  • 显然,“switch”选项已从 Homebrew 中删除。我通过使用“brew link python@3.8”解决了这个问题。 (5认同)

mat*_*mc3 7

首先,如果你可以避免使用系统python作为用户土地代码通常被认为是不好的做法.您需要假设系统实用程序需要特定版本的系统python,然后您的用户域代码可能永远被锁定到该python版本,这是不明智的.

其次,我不清楚为什么你需要2.7.10而不是2.7.13.具有相同次要修订号(2.7)的所有蟒蛇应始终兼容.如果您需要2.6,那将是一个不同的故事,因为这是次要版本的变化.为2.7.x编写的代码应该都是兼容的.

但是,假设您的用例确实需要使用特定的Python版本,那么请确保您确实已经开始升级系统python.如果输入命令:which python,你得到/usr/bin/python(系统)还是/usr/local/bin/python(brew安装了user-land python).例如,/usr/bin/python -V给我2.7.10,即使python -V给我2.7.13(通过brew).

你有可能安装了最新的python 2.7.x,你可以在brew其中添加/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
Run Code Online (Sandbox Code Playgroud)

  • 在"pyenv global 2.7.10"之后如果我做"python -V"仍然得到2.7.13 (3认同)
  • brew switch 说:python 在地窖中没有版本“2.7.10”。 (2认同)
  • pyenv 通过修改您的 PATH 来工作。您需要确保按照说明将 `export PATH=$(pyenv root)/shims:$PATH` 放入您的 .bash_profile 中 https://github.com/pyenv/pyenv (2认同)