如何使用Homebrew在Mac上安装Python 2和3?

Mos*_*aMV 137 python homebrew

我需要能够在Python 2和3之间来回切换.我如何使用Homebrew做到这一点,因为我不想弄乱路径并遇到麻烦.现在我通过Homebrew安装了2.7.

mol*_*are 273

我会用pyenv你可以安装它:

$ brew install pyenv
Run Code Online (Sandbox Code Playgroud)

要在Bash shell中启用pyenv,您需要运行:

$ eval "$(pyenv init -)"
Run Code Online (Sandbox Code Playgroud)

要在启动时自动为Bash执行此操作,请将该行添加到您的~/.bash_profile.1

用法:

一旦安装了pyenv并激活它,就可以安装不同版本的python并选择可以使用的版本.例:

$ pyenv install 2.7.5
Run Code Online (Sandbox Code Playgroud)

您可以检查已安装的版本:

$ pyenv versions
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令在python版本之间切换:

$ pyenv global 3.3.1
Run Code Online (Sandbox Code Playgroud)

您还可以为当前目录设置python版本:

$ pyenv local 3.5.2
Run Code Online (Sandbox Code Playgroud)

您可以通过运行检查python --version:

$ python --version
Python 3.5.2
Run Code Online (Sandbox Code Playgroud)

1 Homebrew用于指示您在安装pyenv时执行此操作,但消息已被删除.对于Zsh和其他炮弹,精确的步骤可能会有所不同.

  • 我不得不将`eval'$(pyenv init - )"`添加到我的.profile/.zshrc中以使pyenv工作. (5认同)
  • @ilciavo,您可能需要在您的〜/ .bash_profile中添加`eval'$(pyenv init - )"` (4认同)
  • 如果我已经通过*homebrew*安装了python 2.7,那么我应该使用*pyenv*吗?我可以通过*pyenv*安装另一个python 2.7吗? (3认同)
  • 是的,你可以通过pyenv安装另一个python 2.7.它将在$ PYENV_ROOT /版本中安装该python.当你执行"pyenv版本"时,通过自制软件安装的另一个python 2.7可能显示为"system". (3认同)
  • 我用更多信息编辑了答案. (2认同)

Len*_*ran 74

您可以同时安装这两个版本.

对于Homebrew> = 1.5.0:

自2018年3月1日起,该python公式将升级到Python 3.x,同时python@2将为Python 2.7添加一个新的公式.

请参阅此处的更改公告或此处有关使用Homebrew for Python的最终文档.

对于较旧的Homebrew:

对于Python 2.x:

brew install python
Run Code Online (Sandbox Code Playgroud)

对于Python 3.x:

brew install python3
Run Code Online (Sandbox Code Playgroud)

现在,您将在您的计算机中安装这两个版本.如果要使用版本2,请使用python可执行文件.如果要使用版本3,请使用python3可执行文件.

  • 另外,请注意,python2和python3并排,python指向python2,python3指向python3.然而,一个很大的问题是pip并没有像你期望的那样指向pip2.它实际上指向pip3(显然pip3也是如此).要使用pip2,请明确使用pip2.有一点不一致,python的非数字后缀指向2,但pip的非数字后缀指向3. (9认同)
  • 这会混淆常见的可执行文件,如pip.在这种情况下,python3将覆盖python2 pip,这将是默认的"pip"命令 (5认同)

Gui*_*ier 11

目前,Homebrew为Python 2和3提供了两种不同的公式.brew install python安装python3,并brew install python@2安装python2.Homebrew文档中的更多细节:

https://docs.brew.sh/Homebrew-and-Python

如果您目前通过Homebrew安装了2.x,Homebrew会给您一条消息,例如:

Error: python 2.7.14 is already installed
To upgrade to 3.6.5, run `brew upgrade python`
Run Code Online (Sandbox Code Playgroud)

如果您运行:

brew upgrade python
Run Code Online (Sandbox Code Playgroud)

你应该能够做到:

python --version
Run Code Online (Sandbox Code Playgroud)

和

python3 --version
Run Code Online (Sandbox Code Playgroud)

要查看安装了哪些版本的Python 2.x和3.x.


Fre*_*ell 6

或者,您可以输入"python3"来运行最新版本的python3.x和"python"或"python2"来运行最新安装的2.x版本.


ish*_*007 5

有两种方法可以同时使用,但今天最简单的解决方案是使用pyenv。pyenv 允许在版本之间轻松切换。这是我所做的设置:

第1步:

从你的 mac 中删除所有 python

 brew uninstall --ignore-dependencies --force python
 sudo rm -rf ~/miniconda3/
 sudo rm -rf ~/.conda/
Run Code Online (Sandbox Code Playgroud)

从以下内容中删除 ~/.bash_profile

export PATH="/Users/ishandutta2007/miniconda3/bin:$PATH"

还有以下来自 ~/.bashrc

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
export PYTHONPATH=/usr/local/lib/python2.7/site-packages/google:$PYTHONPATH
alias python="/usr/bin/python"
Run Code Online (Sandbox Code Playgroud)

第2步:

安装 pyenv 和你需要的 python 版本

brew update
brew install pyenv
pyenv install 2.7
pyenv install 3.7.0
Run Code Online (Sandbox Code Playgroud)

第3步:

添加pyenv init到bash_profile或bashrc

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

第4步:

检查安装了什么

pyenv versions
Run Code Online (Sandbox Code Playgroud)
  • 系统(由 /Users/ishandutta2007/.pyenv/version 设置)

    2.7

    3.7.0

第5步:

选择一个默认值

pyenv global 3.7.0
Run Code Online (Sandbox Code Playgroud)

当项目需要旧版本时,只需转到其根文件夹并运行

pyenv local 2.7
Run Code Online (Sandbox Code Playgroud)