Se você moveu um projeto Python no seu Mac e o .venv parou de funcionar, recrie o ambiente no novo local do projeto. Os ambientes virtuais Python contêm caminhos vinculados ao local onde foram criados, portanto, alterar o nome da pasta ou o diretório pai pode quebrar a ativação e os comandos instalados. Mantenha os arquivos do projeto, remova apenas o .venv antigo, crie um novo ambiente e reinstale as dependências a partir dos arquivos de dependência do projeto. A documentação do venv do Python descreve os ambientes como geralmente não portáteis e recomenda recriar um após movê-lo.
Por que um ambiente movido quebra
Um ambiente virtual armazena sua configuração do Python e cria scripts instalados com caminhos para o interpretador do ambiente. Ao mover a pasta do projeto, esses caminhos ainda podem apontar para o local antigo. Isso pode fazer com que source .venv/bin/activate aponte para um arquivo inexistente ou fazer com que um comando instalado no ambiente invoque um interpretador que não existe mais. Reexecutar a ativação ou renomear o ambiente não repara esses caminhos embutidos de forma confiável; a solução documentada do Python é recriar o ambiente em seu novo local. Python: venv and how environments work
1. Abra o projeto movido no Terminal
No Terminal, mude para o diretório atual do projeto. No zsh ou bash, coloque o caminho entre aspas se ele contiver espaços ou caracteres especiais; substitua o caminho de exemplo pelo local real da pasta:
cd "$HOME/Projects/My Python Project"
pwd
ls -la
Verifique se você está na raiz do projeto e consegue ver os arquivos de código-fonte e as informações de dependência. Registros comuns de dependência incluem requirements.txt, pyproject.toml e um arquivo de lock específico do projeto. Não exclua o projeto inteiro nem seus arquivos de dependência. Se não tiver certeza de qual diretório é o ambiente antigo, inspecione o conteúdo dele antes de remover qualquer coisa.
2. Remova apenas o ambiente antigo
Se o diretório do ambiente se chama .venv e está dentro da raiz do projeto, remova apenas esse diretório. Primeiro desative-o se o prompt do shell mostrar que ele está ativo; deactivate é o comando de shell documentado. Em seguida, execute:
deactivate
rm -rf .venv
Se nenhum ambiente estiver ativo, o deactivate pode informar que o comando não está disponível; continue sem ele. Antes de executar rm -rf .venv, confirme se o pwd mostra a raiz do projeto e se .venv é o ambiente que você pretende substituir. Se o seu ambiente usa outro nome ou fica em outro lugar, substitua pelo caminho exato e evite excluir o código-fonte ou os dados do projeto. O Python recomenda remover o ambiente antigo após recriá-lo em seu novo local; este artigo o remove primeiro para deixar o alvo pretendido inequívoco. Python: venv and how environments work
3. Recrie o ambiente com o Python desejado
Se o projeto especifica uma versão do Python, use um interpretador correspondente disponível no seu Mac. Por exemplo, quando o python3.12 está instalado e o projeto requer essa versão:
python3.12 -m venv .venv
source .venv/bin/activate
python --version
python -m pip --version
Se o projeto não especifica uma versão e o seu python3 habitual for adequado, use python3 -m venv .venv. No macOS, o comando de ativação padrão para zsh e bash é source .venv/bin/activate. Verifique a saída de python --version antes de restaurar os pacotes; python deve apontar para o interpretador do ambiente uma vez ativado. Python: venv activation and interpreter paths
Usuários do Homebrew devem manter os pacotes do projeto dentro do ambiente virtual. O Homebrew documenta seu Python atual como gerenciado externamente e recomenda um ambiente de projeto para dependências. Se o python3 estiver ausente ou selecionar um interpretador inadequado, consulte o instalador ou gerenciador de versões que forneceu o Python do projeto; não tente consertar o ambiente instalando pacotes nos diretórios do Python gerenciados pelo macOS. Homebrew: Language Runtimes and Packages
4. Reinstale as dependências a partir do projeto
Use as instruções de dependência existentes ou o arquivo de lock do projeto, quando disponíveis. Para um projeto que gerencia dependências no requirements.txt, reinstale-as com o Python e o pip do ambiente:
python -m pip install -r requirements.txt
Usar python -m pip vincula o pip ao interpretador selecionado pelo python. Se o projeto usar outro gerenciador de dependências ou um arquivo de lock, siga o procedimento de instalação documentado dessa ferramenta em vez de inventar um arquivo de requirements ou ignorar o lock. Um venv novo inclui o pip por padrão, e a documentação do Python indica especificamente um arquivo de requirements como forma de recriar pacotes instalados. Python: venv, Python: Installing Python modules
Se a instalação falhar porque um pacote precisa de um compilador, biblioteca nativa ou versão do Python que o projeto não suporta, o ambiente virtual em si pode ter sido recriado corretamente enquanto essa dependência ainda precisa do seu pré-requisito documentado. Leia as orientações de instalação do pacote ou projeto e resolva o erro específico; não tente resolver usando sudo pip nem alterando a propriedade dos arquivos do Python do sistema. O Homebrew desaconselha essas soluções alternativas para diretórios gerenciados. Homebrew: Language Runtimes and Packages
5. Verifique se o ambiente reparado está ativo
Confirme se o interpretador selecionado está dentro do novo .venv e, em seguida, execute o comando normal ou as instruções de teste do projeto:
python -c 'import sys; print(sys.executable)'
O caminho exibido deve apontar para o diretório .venv do projeto. Se apontar para outro lugar, ative o ambiente a partir da raiz do projeto novamente e verifique as configurações de inicialização do shell ou aliases de comando que alteram a seleção do Python. Essa verificação confirma a seleção do interpretador; ela não comprova que todas as dependências do projeto ou recursos da aplicação funcionem.
Um ambiente virtual movido é mais bem tratado como descartável: preserve o código-fonte e os registros de dependência e, em seguida, reconstrua o .venv onde quer que o projeto esteja no momento. Repetir essas etapas após outra mudança de local é o caminho de recuperação documentado e confiável.
Fontes
venv — Creation of virtual environments — Python Software Foundation
Installing Python modules — Python Software Foundation
Language Runtimes and Packages — Homebrew