148

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

4

9 回答 9

290

我会使用pyenv你可以安装它:

$ brew install pyenv

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

$ eval "$(pyenv init -)"

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

用法:

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

$ pyenv install 2.7.5

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

$ pyenv versions

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

$ pyenv global 3.3.1

您还可以使用以下命令为当前目录设置 python 版本:

$ pyenv local 3.5.2

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

$ python --version
Python 3.5.2

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

于 2013-09-07T08:20:23.517 回答
77

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

对于 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

对于 Python 3.x:

brew install python3

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

于 2014-10-28T13:42:16.803 回答
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`

如果你运行:

brew upgrade python

你应该能够做到:

python --version

python3 --version

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

于 2018-03-14T18:41:33.477 回答
6

或者,您可能只需输入“python3”来运行最新版本的 python3.x 和“python”或“python2”来运行最新安装的 2.x 版本。

于 2013-09-07T15:15:38.650 回答
5

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

步骤1:

从你的mac中删除所有python

 brew uninstall --ignore-dependencies --force python
 sudo rm -rf ~/miniconda3/
 sudo rm -rf ~/.conda/

删除以下内容~/.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"

第 2 步

安装 pyenv 和你需要的 python 版本

brew update
brew install pyenv
pyenv install 2.7
pyenv install 3.7.0

第三步

添加pyenv initbash_profilebashrc

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

第 4 步

检查安装了什么

pyenv versions
  • 系统(由 /Users/ishandutta2007/.pyenv/version 设置)

    2.7

    3.7.0

第 5 步:

选择一个默认值

pyenv global 3.7.0

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

pyenv local 2.7
于 2018-07-28T09:17:18.950 回答
1

使用asdf

asdf的民谣

从前有一种编程语言
,它有很多版本,
所以人们为它写了一个版本管理器来
为项目切换不同的版本
,旧的,新的。

然后出现了更多的编程语言
因此出现了更多的版本管理器
和许多用于它们的命令

我安装了很多
我学到了很多命令

然后我说,
我会再写一个版本管理器

所以,出现了另一个版本管理器
asdf 版本管理器- https://github.com/asdf-vm/asdf

一个可扩展的版本管理器
,任何人都可以为其创建插件
支持他们最喜欢的语言
无需安装更多版本管理器
或学习更多命令

https://github.com/asdf-vm/asdf
https://github.com/tuvistavie/asdf-python
https://github.com/asdf-vm/asdf-plugins

于 2018-03-04T03:22:52.350 回答
1

我以为我有同样的要求——在 Python 版本之间移动——但我通过从源代码构建而不是使用homebrew.

git clone https://git.<theThingYouWantToInstall>

根据 repo,检查是否已经为此选项设置了 MAKE 文件。

于 2018-04-17T12:52:09.720 回答
1

我能够去https://www.python.org/downloads/mac-osx/并下载最新的 python。它安装在我系统中的当前 python 旁边。

于 2019-04-04T09:06:20.267 回答
-3

好的,我正在为 Python3 的 brew 安装而苦苦挣扎,因为我没有 pip3

sudo pip3 command not found

所以我做了

brew uninstall --force --ignore-dependencies python3

并从官方发行版安装了常规的 Python 3.6.2,然后我有了 pip3,所有组件都正常。

于 2017-07-21T15:28:51.307 回答