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

时间:2019-08-24 17:45:31

标签: python macos anaconda homebrew pyenv

如果很容易在其他地方发现此问题,请致以歉意,但是尽管我发现有很多关于pyenv和Anaconda的文章,但没有一个专门解决此问题。但是,我经常是个白痴。

在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大师可能有一些明智的建议,可以为我节省数小时的清理工作。

谢谢!

2 个答案:

答案 0 :(得分:2)

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

我一直在使用这些工具,而我发现的最佳解决方案是

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

详细信息

由于您的计算机上已安装pyenv,因此只需要安装Anaconda。

brew cask install anaconda

初始化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

完成。

注意:完成此设置后,默认的Python是pyenv global设置的Python。使用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的输出。

扩展阅读力

答案 1 :(得分:1)

对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

然后运行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中是一个好主意。如果遇到任何环境/依赖性问题,它可以更轻松地调试环境。