设定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语句的方式。

#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 -)"