Wegbereiter für Pyenv

Aug 25 2020

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

1 kHarshit Aug 27 2020 at 07:39

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