我如何在 OSX 上安装现有的 pyenv 安装 Anaconda?

How can I install Anaconda aside an existing pyenv installation on OSX?

如果在其他地方很容易找到这个问题,我深表歉意,但尽管我发现了一些带有 pyenv 和 Anaconda 解释的帖子,none 专门解决了这个问题。然而,我常常是个白痴。

在 Mac OSX (Mojave 10.14.6) 我通过 Homebrew 安装了 pyenv

brew install pyenv

而且我很乐意安装 Python 版本并在

之间切换

pyenv install ...

pyenv global ...

我通常使用 VS Code 作为我的 IDE。

我现在需要在 Anaconda 中做一些工作。我以前没用过。我可以简单地安装 Anaconda via the distribution site 并使用它的导航器,当我需要我的旧 python 版本时使用 pyenv 和 VS Code,或者我安装 Anaconda 时会不会有冲突?如果有冲突,在 OSX 上是否有通往 运行 的路径?

我当然可以安装它看看会发生什么,如果一团糟的话可以从备份中恢复。但我希望 pyenv / Anaconda 大师可能有一些明智的建议,可以节省我数小时的清理时间。

提前致谢!

对 conda 不是很熟悉,但我确实经常使用 pyenv。

Pyenv 有自己的 virtualenv manager 供您使用。您可以随时检查哪个 virtualenv 版本处于活动状态:

pyenv versions

您应该会看到如下内容:

  system
  20190814_125309
* 3.7.4 (set by /home/tzhuang/.pyenv/version)
  3.7.4/envs/20190814_125309
  3.7.4/envs/buildmaster-sandbox
  3.7.4/envs/HEAD
  3.7.4/envs/myenv
  3.7.4/envs/sandbox
  buildmaster-sandbox
  HEAD
  myenv
  sandbox

其中 * 表示当前活动的 virtualenv(这可以像您提到的那样使用 pyenv global 进行设置)。您可以手动激活任何 virtualenv:

pyenv shell

例如

pyenv shell sandbox

然后 运行ning pyenv versions 给出:

  system
  20190814_125309
  3.7.4 (set by /home/tzhuang/.pyenv/version)
  3.7.4/envs/20190814_125309
  3.7.4/envs/buildmaster-sandbox
  3.7.4/envs/HEAD
  3.7.4/envs/myenv
  3.7.4/envs/sandbox
  buildmaster-sandbox
  HEAD
  myenv
* sandbox

将任何你想要的包安装到一个新的 virtualenv 而不是全局 virtualenv 中通常是个好主意。如果您 运行 进入任何问题,它会使调试 environment/dependency 问题变得更容易。

存在冲突,导致 pyenvconda 默认都尝试公开全局 Python 环境。

我一直在同时使用这些工具,我找到的最佳解决方案是

  1. 始终初始化pyenv,使用pyenv global设置的Python作为默认值Python
  2. 仅公开命令 conda 但不要从中激活任何环境

详情

由于pyenv已经安装在你的机器上,你只需要安装Anaconda。

brew cask install anaconda

初始化 conda 而不暴露来自 conda 的 "base" 环境。

# init conda, the following command write scripts into your shell init file automatically
conda init

# disable init of env "base"
conda config --set auto_activate_base false

完成。

注意:此设置后,默认Python是pyenv global设置的那个。使用 pyenvconda 分别管理环境。

管理虚拟环境的示例。

# virtual environments from pyenv
pyenv install 3.6.9
pyenv virtualenv 3.6.9 new-env
pyenv activate new-env
pyenv deactive
# You can also use `pyenv local`


# virtual environments from conda
conda create -n new-env python=3.6
conda env list
conda activate new-env
conda deactivate

pyenv 的默认环境位置是 ~/.pyenv/versions

conda 的默认环境位置,检查 conda info 的输出。

扩展阅读