Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在最新的OS X上安装多个Python版本并并行使用它们?_Python_Macos_Homebrew - Fatal编程技术网

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

如何在最新的OS X上安装多个Python版本并并行使用它们?,python,macos,homebrew,Python,Macos,Homebrew,我想在OS X 10.11上运行多个Python版本的测试,包括: Python 2.6- Python 2.7-默认-已解决 Python 3.4- Python 3.5-通过brew安装-运行良好 康达Python 3.5- 我想通过tox运行测试,所以tox需要能够找到它们。遗憾的是,brew似乎不想安装3.4,因为他们添加了3.5,我显然不想删除3.5。这建议使用pyenv和所需的解毒功能。brew的基本设置要求: brew install pyenv pyenv-virtualen

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

  • Python 2.6-
  • Python 2.7-默认-已解决
  • Python 3.4-
  • Python 3.5-通过brew安装-运行良好
  • 康达Python 3.5-
我想通过
tox
运行测试,所以tox需要能够找到它们。遗憾的是,brew似乎不想安装3.4,因为他们添加了3.5,我显然不想删除3.5。

这建议使用
pyenv
和所需的
解毒功能。brew的基本设置要求:

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


最后,
pip-install-detox
将确保您已经安装了
tox
detox
。然后,您应该能够在
tox.ini
中指定所需的测试版本。我强烈建议您使用包管理器,如
Anaconda
,这样可以轻松地安装不同的自包含
虚拟环境

例如,要使用
numpy
python2.7
创建虚拟环境,以下是命令:

conda create--name py2_env numpython=2.7

然后切换到该环境:


source activate py2_env

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

pyenv允许您轻松地在多个Python版本之间切换。它简单、不引人注目,并且遵循UNIX的单一用途工具的传统,可以很好地完成一件事。这个项目来自rbenv和ruby构建,并针对Python进行了修改

通过自制软件安装:

$ brew update
$ brew install pyenv
它为您处理各种python的下载、编译和安装,例如:

$ pyenv install 3.7.2
它可以显示您已安装的版本,以及哪些版本处于活动状态:

$ pyenv versions
  system
  3.6.7
* 3.7.2
当您在一个新的项目目录中时,只需告诉pyenv在那里使用哪个python版本:

$ pyenv local 3.6.7  # Because e.g. tensorflow isn't compat. with 3.7 :-(
您可以在其他任何地方设置“默认”版本:

$ pyenv global 3.7.2

pyenv
一切都很好,但我觉得我们应该提到Kenneth Reitz提供的精彩的
pipenv


它提供pyenv plus依赖项锁定功能,支持开箱即用的
.env
以及更多功能。

brew
本身就足以让我使用多个版本的Python。我没有严格地需要
pyenv
conda

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

brew install python@3.8
brew install python@3.9
创建虚拟环境时,请使用以下方法之一创建虚拟环境:

/usr/local/opt/python@3.8/bin
/usr/local/opt/python@3.9/bin

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

这可能会有所帮助:这不是一个选项,因为它仅适用于conda,我正在寻找一种比conda更适用的版本。Pipenv只能使用已经存在的python版本已安装,因此这对问题没有帮助。还需要brew postinstall python3,以便pip3可用。在当前版本中,pip3在运行Pyev install 3.x.yNote后直接可用。请注意,此时已进行解毒。如果我按照您的答案进行操作,您是否介意共享bash_配置文件的外观?此外,要在两个版本之间导航,需要
brew取消链接python@3.8
&
brew链接--强制python@3.9
@kd12345您不必取消链接或链接到“在版本之间导航”。而是为您的项目使用虚拟环境。