Je suis un développeur Python et je travaille généralement avec plusieurs référentiels à tout moment. La plupart de ces projets ont des dépendances différentes, je crée donc un environnement virtuel dans chaque projet. Je préfère créer un environnement virtuel juste à côté du code. Pycharm le détecte également lorsque le référentiel est ouvert dans Pycharm.
Cette configuration a fonctionné la plupart du temps mais parfois, j'active venv d'un référentiel puis je le modifie dans un autre référentiel sans changer d'activation de l'environnement correct. J'ai généralement remarqué cela lorsque l'exécution de code échouait et je n'ai jamais perdu plus d'une minute à ce sujet, mais cela m'a toujours fait penser que se passerait-il s'il existait un shell qui pourrait exécuter quelque chose lorsque vous entrez dans un répertoire ?
J'ai décidé d'implémenter temporairement quelque chose de simple dans un script shell. J'ai fini par créer une petite fonction, aliasée avec cd et ajoutée dans mon .bashrc.
C'est une fonction simple et tout ce dont j'ai toujours eu besoin. C'est le cas,
J'étais d'accord pour ne pas désactiver/réinitialiser l'environnement lorsque je quittais le répertoire.
Ajoutez la fonction ci-dessous dans .bashrc et vous devriez pouvoir l'utiliser.
Remarque : si vous créez votre environnement virtuel avec un nom différent, veuillez modifier le nom dans le code ci-dessous.
function cd() { # Run a shell `cd` command or error command cd "$@" || return # If .venv exists in the directory if [[ -d .venv ]]; then # Deactivate any initialized virtual env, ignore error deactivate > /dev/null 2>&1 # activate .venv source .venv/bin/activate echo "deactivate prev venv and activate current venv" fi # Load a .cdenv file if [[ -f .cdenv ]]; then echo "loading .cdenv" source ./.cdenv fi }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!