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