我同时使用
direnv
和 pyenv
,并且想向我的 .envrc
添加一些内容,以便每当我更改目录时,我也会使用 pyenv 激活我的虚拟环境。
我在 virtualenv 处于活动状态和不活动状态时都打印了环境变量。设置了一些 pyenv 变量,我将其添加到我的
.envrc
中(见下文)。我希望这些能够在更改到目录后激活我的 pyenv 虚拟环境,但它不起作用。
我会继续研究这个问题并尝试解决它。如果我找到答案,我会用答案更新问题。与此同时,我很好奇是否有其他人配置了
direnv
,以便在 cd
' 到目录时加载虚拟环境。如果是这样,您介意分享一下您是如何做到的吗?
** 添加到 .envrc 后不起作用**
PYENV_VERSION=ds
PYENV_ACTIVATE_SHELL=1
PYENV_VIRTUAL_ENV=/Users/evan/.pyenv/versions/3.10.4/envs/ds
VIRTUAL_ENV=/Users/evan/.pyenv/versions/3.10.4/envs/ds
这可以使用 pyenv-virtualenv 而不是 direnv 来完成。首先,使 确保
eval "$(pyenv virtualenv-init -)"
在 ~/.bashrc
中运行。然后,要使用
特定目录中的命名 virtualenv,将 virtualenv 名称放入文件中
在该目录中名为 .python-version
。例如在目录~/py
:
$ pyenv virtualenv my-venv
$ mkdir ~/py
$ echo my-venv >~/py/.python-version
$ cd ~/py
(my-venv) $ python -V
Python X.Y.Z