设置 Pyenv 的路径

Setting the path for Pyenv

我正在尝试在我的服务器 .bashrc 文件中设置 Pyenv 的加载路径。

我正在关注此 tutorial,它要求我们将 pyenv 设置为加载路径

但是,在我的 .bashrc 文件中,我已经看到以下命令

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
 eval "$(pyenv init -)"
fi

它与上面分享的教程中提供的以下内容有何不同?

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

我可以知道上面显示的代码中 if...fi 块的作用吗?

主要是bash的语法。

#1.

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

等同于

export PATH="$HOME/.pyenv/bin:$PATH"

与第一种情况一样,您要声明一个名为 PYENV_ROOT 的变量,然后使用它。

#2.

iffi 是你在 bash.

中写 if-statements 的方式

#3.

command -v pyenv 用于执行命令 (pyenv) 在这种情况下,-v 选项打印路径名,例如

$ command -v python
/usr/bin/python
if command -v pyenv 1

表示如果找到命令pyenv,则执行eval "$(pyenv init -)"

#4.

这里,>/dev/null 2>&1;用于丢弃输出。阅读更多相关信息 this answer.

因此,两个代码块几乎相同,唯一的区别是:第一个代码块有一个 if-block,第二个代码块有一个额外的命令 eval "$(pyenv virtualenv-init -)".