使用.sh 文件设置 python shell 版本

使用.sh 文件设置 python shell 版本

我正在执行我的,./shell.sh其中包含

eval "$(pyenv init -)"
pyenv shell 3.8.2

但什么也没发生。如果我手动在 bash 中运行此代码,它会正常工作,并且 python 的 shell 版本会从 切换2.7.103.8.2

我在正确的目录中,并且我授予了.sh文件执行权限。

答案1

添加pyenv init到您的 shell 以启用垫片和自动完成。请确保eval "$(pyenv init -)"将其放置在 shell 配置文件的末尾,因为它会PATH在初始化期间进行操作。

来源

该命令旨在操纵 shell 的环境;并定义一些函数。如果它在脚本中,那么它将操纵解释脚本的 shell 的环境(并在其中定义函数)。

如果你的脚本是,并且你用(或)shell.sh运行它,那么解释该脚本的 shell 是./shell.shbash shell.sh不是你当前的 shell。请参阅.在 中获取(或source)和执行文件之间有什么区别bash

所以不要指望你的剧本能改变你的任何东西当前的shell,除非你获取脚本:

. ./shell.sh

注意,在这种情况下,文件不需要是可执行文件。shebang(如果有)无关紧要。

相关内容