Pour ceux qui utilisent python dans l'environnement pyenv
+ pyenv-virtualenv
.
Je veux charger automatiquement «.python-version» et «activer» lorsque je déplace le répertoire.
Raison,
cd ~/foo
pyenv activate foo
cd ~
pyenv deactivate
Parce qu'il est difficile d'activer et de désactiver un par un.
Si vous utilisez direnv
, utilisez ʻeval" $ (direnv hook bash) " S'il est décrit comme suit dans
~ / .bashrc etc., chaque fois que
cdest fait Il semble que cela m'accroche, donc je devrais pouvoir le faire sans utiliser
direnv. C'était facile à faire après un peu de recherche, donc je l'ai posté après un long moment comme rappel (Je devrais peut-être utiliser
direnv`, mais personnellement je ne m'y suis pas habitué)
correction:
eval "$(pyenv virtualenv-init -)"
Et, s'il est décrit dans ~ / .bash_profile
, il basculera automatiquement ...
J'avais l'intention de le décrire ci-dessus, mais il y a eu un cas où l'environnement n'a pas changé parce que la position de description était fausse ...
On suppose que les environnements «pyenv» et «pyenv-virtualenv» ont été définis.
Ajoutez ensuite ce qui suit à .bash_profile
etc. dans .bash_profile
etc.
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"
}
Après avoir décrit ce qui précède, si vous le rechargez en tant que source .bash_profile
Il va automatiquement "désactiver" et "activer".
Lisez d'abord l'emplacement actuel avec pwd
S'il y a une .python-version
, la première moitié est désactiver
De plus, s'il y a .python-version
dans le dossier de destination
Chargez-le ʻactiveret enfin chargez le
cd` intégré
Je bouge.
Je ne pouvais pas appeler la commande intégrée avec bulitin hoge
.
J'ai fait référence à ce qui suit que j'ai traversé avec «shell hook».