除了 OSX 上现有的 pyenv 安装之外,如何安装 Anaconda?

Dri*_*ler 15 python macos homebrew anaconda pyenv

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

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

brew install pyenv

我很高兴地安装并在 Python 版本之间切换

pyenv install ...

pyenv global ...

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

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

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

提前致谢!

Sim*_*mba 23

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

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

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

细节

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

brew cask install anaconda
Run Code Online (Sandbox Code Playgroud)

初始化conda而不从conda.

# 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
Run Code Online (Sandbox Code Playgroud)

完毕。

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

管理虚拟环境的示例。

# 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
Run Code Online (Sandbox Code Playgroud)

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

的默认环境位置conda,检查conda info.

扩展阅读

  • @Bendemann通过设置`auto_activate_base = false`,只有命令`conda`暴露于`PATH`。要使用“jupyter”命令,请首先从 Anaconda 激活“base”环境。`conda 激活基地`。 (2认同)

小智 5

对于Simba提到的解决方案,还有一种更简单的解决方案。

您可以使用pyenv-virtualenv

它允许您直接从 pyenv 管理虚拟环境(包括 conda 环境)。

这是一个示例场景:

  • 我使用 pyenv 安装了 python 3.10.5 并设置为全局 Python 版本。
  • 我用pyenv安装了anaconda3-2022.05,我想在项目中使用conda环境。
  • 我使用 Homebrew 安装了 pyenv-virtualenv (因为我也使用 Homebrew 安装了 pyenv),并将其 init 放在我的.zshrc.
  • 我使用 pyenv 创建了一个虚拟 conda 环境:pyenv virtualenv anaconda3-2022.05 my-conda-env
  • 我导航到项目文件夹并:pyenv local my-conda-env
  • 现在,该.python-version文件引用了my-conda-env,每次我导航到终端中的该文件夹时, my-conda-env 都会自动激活,并在我导航出项目文件夹时停用(这是因为我们加载了 pyenv-virtualenv 的 init )。

PS 根据我的经验,您不需要在 shell 配置文件中放置自动禁用 anaconda 基本环境的行。无论如何,基本环境并没有为我自动激活。

注意:还要注意 shell 配置文件中三个添加项的位置:pyenv、pyenv-virtualenv 和 anaconda。文件中稍后放置的文件是最后加载的文件,因此它对 PATH 的调整将最先进行。