我使用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
该消息实际上会导致正确的信息,但对问题存在的原因没有多大帮助。
似乎export
和PS1
触发了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 中的注释