MacOS:如何降级自制Python?

时间:2017-05-27 13:36:12

标签: python macos homebrew

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

5 个答案:

答案 0 :(得分:24)

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

brew switch python 3.6.5

不幸的是,brew versions命令已被弃用,并且目前非常复杂to locate the available versions。我希望听到一个简单的解决方案。同时,如果您知道要切换到的版本,请尝试使用上面的命令。

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

答案 1 :(得分:6)

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

其次,我不清楚为什么你需要2.7.10而不是2.7.13。具有相同次要修订号(2.7)的所有蟒蛇应该always be compatible。如果您需要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)。

您可以通过brew安装最新的python 2.7.x,将/usr/local/bin/python作为符号链接放在$PATH中,或者您可能有{{1}别名指向你不想要的地方。验证您的$ PATH订单。

您可以通过删除它(python)或更改符号链接(brew uninstall python)来重置您自制的python。然而,使用virtualenv消除了对这些体操的大量需求。

如果你想通过自制软件安装Python的早期版本,这个答案应该有所帮助:How to install older formula using Brew?

最后一个选项:如果您必须拥有特定的python版本,pyenv可以提供帮助。

ln -s -f /usr/bin/python /usr/local/bin/python

答案 2 :(得分:1)

无需降级python,因为您可以在系统上同时使用它们。

要在其中使用python 2-x编译文件的位置。

python2 or python2-x filename.py

以及需要python 3的地方

python3 or python3-x filename.py

python的默认用法将导致使用最新版本,而降级到特定版本会让人很头疼,因为它不是直接的,因为python不能从3-x兼容到2-x。 >

答案 3 :(得分:0)

https://www.python.org/downloads/release/python-360/

下载python 3.6.0

将其作为普通软件包安装。

运行UsedRange

运行ls,所有已安装的Python版本将在此处可见。

运行cd /Library/Frameworks/Python.framework/Version

现在用sudo rm -rf 3.7检查版本,现在是3.6。

答案 4 :(得分:-1)

这不是问题的直接答案,而是解释了避免触及系统python的解决方案。

一般的想法是你应该总是为你的项目安装独立的python。每个项目都需要自己的python版本(出于与库的兼容性原因),保留一个python版本并尝试使其适用于多个项目是不实际的。

我认为你的系统中发生了这个问题,因为另一个项目需要更高的python版本,现在你的其他项目需要更低版本的python。

处理python版本的最佳方法是使用virtualenv。

每个项目都有自己的python,所以你可以使用python 2.7和python 3的项目,它们永远不会触及彼此的依赖关系。

使用自制软件安装不同的python版本,然后在创建virtualenv时为每个项目安装,以决定选择哪个python。每次使用该项目时,python版本都是您在创建virtualenv时自己选择的版本。