pyenv-virtualenv
提供了一种在进入或离开目录时激活环境的好方法,该目录包含指定要激活的环境的 .python-version
文本文件。它适用于它所在的目录以及其中包含的所有目录。
一旦我们将目录更改为它上面的目录,环境就会停用。这允许使用不同的 python 版本轻松地在项目或分析之间切换(只需更改目录)。
有没有办法用 (ana)conda 实现相同的行为?
编辑:添加了 bash 标签,因为 - 据我了解 - pyenv 通过将自定义脚本挂接到 .bashrc
(这允许它监视目录更改)来实现这一点。如果 conda 中没有内置方式,如何创建一个脚本来实现这一点?
最佳答案
正如我的评论中提到的,目前不支持此功能。然而 conda's GitHub 上有一个悬而未决的问题。请求此功能。
同时您可以使用 autoenv ,一个小工具,进入目录时自动运行 .env.leave 文件中的代码,离开目录时自动运行 .env.leave 中的代码(支持 bash/zsh 和其他一些)。
取自自述文件的一个简单示例很好地说明了该功能:
$ echo "echo 'whoa'" > project/.env
$ cd project
whoa
要加载 conda 环境,您的 .env
将如下所示:
conda activate <my_env>
注 1:在开始使用之前,请先查看其 GitHub 自述文件的配置部分。
注2:autoenv的作者实际上建议尝试direnv反而。不过我从未使用过它,所以我无法评论它。
来自 autoenv 的自述文件:
you should probably use direnv instead. Simply put, it is higher quality software. But, autoenv is still great, too. Maybe try both? :)
关于bash - 在进入/离开目录时激活/停用 conda virtualenvs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58824674/