Soy desarrollador de Python y normalmente trabajo con varios repositorios en cualquier momento. La mayoría de estos proyectos tienen diferentes dependencias, por lo que creo un entorno virtual en cada proyecto. Prefiero crear un entorno virtual justo al lado del código. Pycharm también lo detecta cuando se abre el repositorio en Pycharm.
Esta configuración funcionó la mayor parte del tiempo, pero a veces activo venv de un repositorio y luego lo cambio a otro repositorio sin cambiar la activación del entorno correcto. Por lo general, veía esto cuando la ejecución del código solía fallar y nunca perdía más de un minuto en esto, pero esto siempre me hizo pensar ¿qué pasaría si hubiera un shell que pudiera ejecutar algo cuando ingresas a un directorio?
Decidí implementar algo simple en el script de shell temporalmente. Terminé creando una pequeña función, con el alias de cd y agregada en mi .bashrc.
Es una función simple y todo lo que siempre necesité. Lo hace,
Estaba de acuerdo con no desactivar/restablecer el entorno cuando salí del directorio.
Agregue la siguiente función en .bashrc y debería poder usarla.
Nota: Si crea su entorno virtual con un nombre diferente, cambie el nombre en el código siguiente.
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 }
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3