Sou desenvolvedor python e geralmente trabalho com vários repositórios a qualquer momento. A maioria desses projetos tem dependências diferentes, então crio um ambiente virtual em cada projeto. Prefiro criar um ambiente virtual próximo ao código. O Pycharm também detecta quando o repositório é aberto no Pycharm.
Essa configuração funcionou na maioria das vezes, mas às vezes eu ativo o venv de um repositório e depois altero para outro repositório sem alterar a ativação do ambiente correto. Eu geralmente percebi isso quando a execução do código falhava e nunca perdia mais de um minuto nisso, mas isso sempre me fazia pensar: e se houvesse um shell que pudesse executar algo quando você entrasse em um diretório?
Decidi implementar algo simples em shell script temporariamente. Acabei criando uma pequena função, alias de cd e adicionada em meu .bashrc.
É uma função simples e tudo que eu sempre precisei. É verdade,
Concordei em não desativar/redefinir o ambiente quando saí do diretório.
Adicione a função abaixo em .bashrc e você poderá usá-la.
Nota: Se você criar seu ambiente virtual com um nome diferente, altere o nome no código abaixo.
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 }
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3