Carregamento Rápido de venv Python — Local, Depois Global
— 2 min de leitura
Alternar entre projetos Python deveria ser instantâneo. O padrão abaixo te dá essa velocidade com um único comando: verifique se existe um .venv local no diretório atual e faça fallback para um ~/.venv global se nenhum existir localmente.
Nota: Este guia cobre macOS e Linux (bash / zsh). Windows usa
Scripts\activateem vez debin/activate, e os caminhos usam\ao invés de/. Adapte a função conforme necessário ou execute-a no Git Bash / WSL onde o bash está disponível.
A função
Adicione isto ao seu ~/.bashrc (ou ~/.zshrc):
pyon() {
if [ -f "./.venv/bin/activate" ]; then
source "./.venv/bin/activate"
elif [ -f "$HOME/.venv/bin/activate" ]; then
source "$HOME/.venv/bin/activate"
else
echo "pyon: no venv found in ./.venv or ~/.venv" >&2
return 1
fi
}
Depois recarregue sua configuração de shell com source ~/.bashrc e está pronto.
Como funciona
Execute pyon a partir de qualquer diretório. A função verifica dois locais em ordem:
- Local:
.venv/bin/activate— o ambiente virtual específico do projeto, criado compython3 -m venv .venv. - Global:
~/.venv/bin/activate— seu ambiente universal pessoal para projetos que não incluem seu próprio venv.
Se nenhum existir, ele imprime um erro e sai com código 1 para que você saiba imediatamente que algo está errado.
Criar o venv global
Para projetos sem um ambiente virtual local, configure uma única vez um global:
python3 -m venv ~/.venv
Depois execute pyon em qualquer diretório de projeto — ele ativará automaticamente esse ambiente compartilhado.
Cuidado: Se você criar um novo
.venvlocal dentro de um projeto que antes usava o global, lembre-se de executarpyonnovamente a partir do diretório do projeto. A função é resolvida no momento da chamada, não na inicialização do shell.
Por que isso supera o sourcing manual
A abordagem tradicional consiste em memorizar e digitar o caminho completo toda vez:
source my-project/.venv/bin/activate
Isso falha assim que você muda de diretório ou trabalha com múltiplos projetos. Com pyon, você digita uma única palavra — independente de onde esteja — e ela encontra o ambiente correto para você. Também funciona em subdiretórios, que é como a maioria dos desenvolvedores navega pelas pastas de projeto de qualquer forma.
Desativar
Como com qualquer ambiente virtual, saia com:
deactivate
Isso restaura seu shell para o Python do sistema. A função pyon em si não interfere no deactivate.