如何在最新的OS X上安装多个版本的Python并同时使用它们?

sor*_*rin 18 python macos homebrew

我想在OS X 10.11上运行多个Python版本的测试,包括:

  • Python 2.6 - ?!
  • Python 2.7 - 默认 - 已解决
  • Python 3.4 - ?!
  • Python 3.5 - 通过brew安装 - 效果很好
  • Conda Python 3.5 - ?!

我想通过运行测试,tox所以tox需要能够找到它们.可悲的是,似乎brew不想安装3.4,因为他们添加了3.5,我显然不想删除3.5.

use*_*160 18

这篇博文建议使用pyenv所需的detox.基本设置brew要求:

brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)

然后安装所需的Python版本pyenv install [version],而不是使用安装Python brew.您可以使用检查可用的版本pyenv versions.

最后,pip install detox确保你已经有了toxdetox安装.然后,您应该能够在您的指定中指定所需的测试版本tox.ini.

  • 请注意,此时排毒[据称已不再维护](https://pypi.org/project/detox/)。 (2认同)

Acu*_*nus 12

brew一个人就足以让我使用多个版本的 Python。我没有严格需要pyenvconda为它。

要使用 安装各种版本brew,请运行以下命令:

brew install python@3.8
brew install python@3.9
Run Code Online (Sandbox Code Playgroud)

创建虚拟环境时,请使用以下方法之一创建它们:

/usr/local/opt/python@3.8/bin
/usr/local/opt/python@3.9/bin
Run Code Online (Sandbox Code Playgroud)

/usr/local/bin/python3在创建虚拟环境时我会避免使用,因为它指向的版本可能会改变。

  • 以下是如何找到路径 `$(brew --prefix python@3.9)/bin` (3认同)
  • 这是正确的答案。上述解决方案可以用于创建具有不同 python 版本的多个虚拟环境,而不是强制使用任何特定版本。 (2认同)

wal*_*ter 10

正如之前的答案也提到的..不需要 pyenv,这对我来说非常完美:

brew install python@3.7
brew install python@3.8
brew install python@3.9
Run Code Online (Sandbox Code Playgroud)

然后只需将相应的版本行添加到~/.bashrc

export PATH="$PATH:/usr/local/opt/python@3.7/Frameworks/Python.framework/Versions/3.7/bin"
export PATH="$PATH:/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/bin"
export PATH="$PATH:/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin"
Run Code Online (Sandbox Code Playgroud)


Dog*_*her 5

pyenv是你想要的东西。它工作得非常好:

pyenv使您可以轻松地在多个版本的Python之间切换。它简单,简单,遵循UNIX的一站式工具传统,可以很好地完成一件事。该项目是从rbenv和ruby-build派生的,并针对Python进行了修改。

https://github.com/pyenv/pyenv

通过Homebrew安装:

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

它为您处理各种python 的下载,编译和安装,例如:

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

它可以显示已安装的版本以及处于活动状态的版本:

$ pyenv versions
  system
  3.6.7
* 3.7.2
Run Code Online (Sandbox Code Playgroud)

在新项目目录中时,只需告诉pyenv在其中使用哪个python版本:

$ pyenv local 3.6.7  # Because e.g. tensorflow isn't compat. with 3.7 :-(
Run Code Online (Sandbox Code Playgroud)

您可以在其他任何地方设置“默认”版本:

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