Pyenv activate在Fish Shell下无法运行activate脚本

5

我的pyenv工作正常,但似乎没有运行位于/usr/local/var/pyenv/versions/project/bin/activate.fish的激活脚本。

在激活我的环境时,它会给出以下输出,但它不会回显从激活脚本中获取的任何内容,这表明它没有运行。

dani@localhost ~/d/project> pyenv activate project
pyenv-virtualenv: prompt changing not working for fish.

当然,我可以手动source文件,但我太急于找出为什么它无法运行了。是否有一种调试模式?我不确定如何处理。

2个回答

5

实际上,虚拟环境已经被激活,但是提示信息仅表示您的提示符未更改。Fish shell故意删除了更新提示符的功能。您可以在此处找到详细信息:https://github.com/pyenv/pyenv-virtualenv/issues/153

如果您想查看虚拟环境是否真正激活,请运行以下命令:

pyenv which python

它应该打印出类似于以下内容的东西:.pyenv/versions/{your-virtual-env}/bin/python


很抱歉,造成了有关虚拟环境激活的误解:那部分是正确的。问题出在激活脚本上:当我激活我的环境时,它应该运行,但它没有运行,我急于找出原因。对此有什么想法吗? - Dani

1

try this:

set PYENV_ROOT $HOME/.pyenv
set -x PATH $PYENV_ROOT/shims $PYENV_ROOT/bin $PATH
pyenv rehash

1
请更详细地描述您的回答。 - isuruAb
我通过homebrew安装了Pyenv,因此我的PYENV_ROOT是不同的,shims和bin文件夹也相对于PYENV_ROOT不同。但是所有这些都包含在我的PATH中,但这不会导致激活的环境对应的激活脚本被触发。 - Dani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接