为什么变量PS1是direnv在采购venv时的一个问题



我使用direnv v2.21.2,希望钩子激活我以前创建的.venv。如果我只使用source .venv/bin/activate,我的环境会被激活,但PS1会显示一条错误消息。实际上,我不知道如何处理PS1变量,但这似乎不是什么大问题,因为我使用starship作为提示。不完全嘘嘘。

使用layout python3可以很好地工作,没有错误,但创建了我不需要的额外venv。有什么想法吗?

EDIT:如果未使用unset PS1,则direnv产生的错误消息:

direnv: PS1 cannot be exported. For more information see https://github.com/direnv/direnv/wiki/PS1

该消息实际上会导致正确的信息,但对问题存在的原因没有多大帮助。

似乎exportPS1触发了Bash 3.0中的一个错误,并且direnv没有办法用set来代替export。我不知道Bash中到底是哪个bug被触发了。

  • 有趣。我有另一个变量[如CDPATH–ed],最好是设置而不是导出:PS1。Direnv实际上并没有这样的机制。如果我有时间重写direnv,我会考虑到这一点--zimbatm在2017年3月11日对第251期发表评论

  • PS1因为bash 3.x中的一个错误而被列入direnv黑名单--zimbatm在2018年2月20日对问题331发表评论

  • //PS1不应导出,修复了bash中的问题--env_diff.go 中的注释

相关内容

  • 没有找到相关文章

最新更新