Mac 下实现 pyenv/virtualenv 与 Anaconda 的兼容
http://blog.csdn.net/vencent7/article/details/76849849
自己一直用的 pyenv 和 pyenv-virtualenv 管理不同的 python 环境。昨天朋友推荐我安装一个 Anaconda(通过官网下载安装带有图形界面Anaconda Navigator 的版本,并非通过 pyenv 安装),结果安装之后似乎与原来的 pyenv 不太兼容,在网上搜了一下,有遇到类似情况的:https://stackoverflow.com/questions/40944277/pyenv-and-anaconda-issue-with-export-path
经过尝试,我找到的解决方案如下:
解决 PATH 环境变量的问题
anaconda 安装的时候会在 .bash_profile
的最后一行把自己的 PATH 加到最前,正是因为这个原因导致 pyenv 失效了(pyenv 也是通过把自己的 PATH加到最前来“劫持”python
等命令实现多版本的管理),因为按照官方的安装说明,pyenv 的几行命令应该放置在.bash_profile
的最后。
因此,编辑.bash_profile,使得 pyenv 的命令放置在 anaconda 的之后:
# added by Anaconda3 4.4.0 installer
export PATH="/Users/frederic/anaconda/bin:$PATH"
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
解决virtualenv识别不到anaconda的虚拟环境的问题
通过以上步骤,pyenv/virtualenv 的优先级已经比 anaconda 高了,因此如果你运行python -version
看到的版本应该是通过 pyenv 指定的版本,而不是 anaconda 的版本。
然而,如何运行 anaconda 版本的 python 呢?
- 如果没有创建过环境而只有默认的 root 的话,我们需要先通过conda 或者anaconda navigator图形界面新建一个environment
- 把刚刚创建的 environment 文件夹软链接到
.pyenv/versions
,即让 pyenv/virtualenv可以识别到 anaconda 创建的环境(如果是通过 pyenv 安装的 anaconda 应该可以直接识别到,但是我的 anaconda 是独立安装的,因此 pyenv 没有检测到):ln -s ~/anaconda/envs/anaconda_env ~/.pyenv/versions/anaconda_env
- 现在输入pyenv versions命令应该能看到 anaconda 的环境了,可以通过virtualenv的 activate/deactivate 命令或者 pyenv 的
pyenv shell/local/glocal [env_name]
命令切换版本
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!