Wegbereiter für Pyenv
Ich versuche, den Ladepfad für Pyenv in meiner Serverdatei festzulegen .bashrc.
Ich folge diesem Tutorial, in dem wir aufgefordert werden pyenv, den Ladepfad festzulegen
In meiner .bashrcDatei werden jedoch bereits die folgenden Befehle angezeigt
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
Und wie unterscheidet es sich von dem unten im Tutorial oben bereitgestellten Tutorial?
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
Darf ich wissen, was if...fiBlock im oben gezeigten Code bewirkt?
Antworten
Es ist meistens die Syntax von Bash.
# 1.
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH"
ist äquivalent zu
export PATH="$HOME/.pyenv/bin:$PATH"
Wie im ersten Fall deklarieren Sie eine Variable mit dem Namen PYENV_ROOTund verwenden sie dann.
# 2.
ifund fiso schreiben Sie if-Anweisungen in bash.
#3.
command -v pyenvwird verwendet, um einen Befehl ( pyenv) auszuführen. In diesem Fall gibt die -vOption den Pfadnamen aus, z
$ command -v python
/usr/bin/python
if command -v pyenv 1
bedeutet, dass wenn der Befehl pyenvgefunden wird, ausführeneval "$(pyenv init -)"
# 4.
Hier >/dev/null 2>&1;wird verwendet, um die Ausgabe zu verwerfen. Lesen Sie mehr darüber diese Antwort .
Daher sind zwei Codeblöcke fast gleich, die einzigen Unterschiede sind: Der erste hat einen if-blockund der zweite einen zusätzlichen Befehl eval "$(pyenv virtualenv-init -)".