Für diejenigen, die Python in der Umgebung "pyenv" + "pyenv-virtualenv" verwenden. Ich möchte automatisch ".python-version" laden und "aktivieren", wenn das Verzeichnis verschoben wird.
Grund,
cd ~/foo
pyenv activate foo
cd ~
pyenv deactivate
Weil es schwierig ist, eine nach der anderen zu aktivieren und zu deaktivieren.
Wenn Sie direnv verwenden, verwenden Sie eval" $ (direnv hook bash) "
Wenn es wie folgt in ~ / .bashrc usw. beschrieben wird, wird jedes Mal cd fertig
Es scheint, dass es mich fesselt, also sollte ich es tun können, ohne direnv zu verwenden.
Nach ein wenig Recherche war es einfach, also habe ich es nach langer Zeit als Erinnerung gepostet
(Vielleicht sollte ich direnv verwenden, aber ich persönlich habe mich nicht daran gewöhnt)
Korrektur:
eval "$(pyenv virtualenv-init -)"
Und wenn es in ~ / .bash_profile beschrieben ist, schaltet es automatisch um ...
Ich wollte es oben beschrieben haben, aber es gab einen Fall, in dem die Umgebung nicht wechselte, weil die Beschreibungsposition falsch war ...
Es wird angenommen, dass die Umgebungen "pyenv" und "pyenv-virtualenv" festgelegt wurden.
Fügen Sie dann Folgendes zu .bash_profile usw. in .bash_profile usw. hinzu.
cd(){
now_path=`pwd`
now_pyenv_filepath=$now_path/.python-version
if [ -e ${now_pyenv_filepath} ];then
now_pyenv=`cat ${now_pyenv_filepath}`
pyenv deactivate
fi
new_pyenv_filepath=$1/.python-version
if [ -e ${new_pyenv_filepath} ];then
local_env=`cat ${new_pyenv_filepath}`
pyenv activate ${local_env}
fi
builtin cd "$1"
}
Nachdem Sie das oben beschriebene beschrieben haben, laden Sie es als source .bash_profile neu
Es wird automatisch "deaktiviert" und "aktiviert".
Lesen Sie zuerst den aktuellen Speicherort mit pwd
Wenn es dort eine ".python-Version" gibt, ist die erste Hälfte "deaktiviert"
Außerdem, wenn sich im Zielordner ".python-version" befindet Laden Sie es "aktivieren" und laden Sie schließlich die eingebaute "CD" Ich ziehe um.
Ich konnte den eingebauten Befehl nicht mit "bulitin hoge" aufrufen.
Ich bezog mich auf das Folgende, das ich mit "Shell Hook" durchgemacht habe.
Recommended Posts