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 modifier l'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 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 j'ai quitté 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 }
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3