如何使用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 initbash_profilebashrc

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)