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