Para Python 3.3+ (com novo venv
módulo integrado)
Resposta curta (independentemente da versão):
- Não há maneira limpa e direta de mover um ambiente virtual
- Basta recriar, é fácil !!
Resposta longa:
A partir do Python v3.3, virtualenv
tornou-se um módulo integrado chamado venv
.
A --relocatable
opção mencionada em outras respostas não foi incluída venv
e, atualmente, não há uma maneira boa e segura que eu conheça de renomear ou realocar um ambiente virtual Python.
No entanto, existe uma maneira bastante simples de simplesmente recriar um ambiente virtual, com todos os seus pacotes instalados atualmente. Consulte esta resposta ou consulte a seção abaixo para obter informações sobre como recriar um ambiente virtual. Durante o processo, você pode recriar o novo ambiente em qualquer local e com o nome que desejar. Ou consulte a seção abaixo para ver o processo.
Nessa resposta, ele menciona alguns outros pacotes de terceiros que podem suportar mudanças ou renomeações diretas. Se você está decidido a buscar uma maneira de mover um ambiente virtual intacto, pode verificar se eles também funcionam com ele venv
.
Observação: nessa resposta, o foco está em virtualenv
, em vez de venv
. Veja abaixo como traduzir.
venv
x virtualenv
sintaxe de comando mais antiga
O comando a ser usado venv
é:
python -m venv
em vez de apenas virtualenv
, que é instalado como um comando no pacote original. Onde "python" se refere ao modo como você executa seu executável python, que pode ser uma variedade de coisas, como:
python
py
ou py -3.7
ou semelhante (o Python Launcher para Windows para Python 3.3+ e Windows apenas no momento)
python3
(convenção para ambientes Linux que instalam duas vezes o python 2 e 3)
- Se você estiver tendo problemas, use o caminho absoluto para o executável Python que deseja executar: por exemplo,
c:\program files\python37\python.exe
Se você não tiver certeza de qual versão está sendo executada, você sempre pode python --version
descobrir.
Como recriar um ambiente virtual
Criar / recriar um ambiente virtual é fácil e deve se tornar uma segunda natureza depois de trabalhar um pouco com eles. Este processo reflete o que você faria para distribuir seu script como um pacote (com suas dependências) na primeira metade, e então o que alguém faria para instalar seu script / pacote para desenvolvimento posterior.
Primeiro, obtenha uma lista atualizada do que há no ambiente virtual. Com ele ativo, obtenha a versão do Python que ele usa e salve a lista de dependências em um arquivo.
Use python --version
com o ambiente virtual ativado para ver qual versão do Python ele está usando.
- Isso é para maior clareza - você pode querer atualizar a versão Python por vários motivos - pelo menos para a versão de patch mais recente
- Por exemplo, se o venv existente está usando Python v3.7.4, mas agora v3.7.6 foi lançado - use v3.7.6, que deve incluir apenas segurança ininterrupta e correções de bugs.
Use python -m pip freeze > requirements.txt
para criar a lista de dependências do pacote atual e colocá-las no requirements.txt
arquivo. Este comando funciona no Linux ou no Git Bash com certeza - não 100% certo sobre o Powershell ou a linha de comando no Windows.
Agora crie um novo ambiente virtual e adicione as dependências do antigo.
Faça o seu novo venv.
- Certifique-se de estar usando a versão correta do python que deseja instalar no venv.
- Se você quiser que seja exatamente a mesma versão do Python:
- Execute o python diretamente do ambiente virtual atual (com ele ativado) e use apenas
python
como o comando
- Ou use um caminho absoluto
python.exe
na pasta do ambiente virtual
- Para a nova entrada da pasta venv no comando:
- Adicione um caminho absoluto ou relativo ao local da pasta final desejada.
- Use
python -m venv my_new_venv
para criar um novo ambiente virtual no diretório de trabalho atual em uma nova my_new_venv
pasta.
- O nome da pasta venv será o nome do venv (que aparece no prompt quando é ativado).
Instale suas dependências do requirements.txt
arquivo.
python -m pip install -r requirements.txt
Você pode precisar reinstalar os pacotes locais que estão em modo de desenvolvimento.
Observe, se você precisar ver o local específico em que um pacote está instalado, use:
python -m pip list -v
- A opção
-v
ou "verbose" irá adicionar algumas informações extras sobre cada pacote instalado, incluindo o caminho em que está instalado. Isso é útil para garantir que você está mantendo os pacotes virtuais, do usuário e do sistema instalados corretamente.
Neste ponto, você pode apenas excluir a pasta venv antiga e todo o conteúdo. Eu recomendo usar uma GUI para isso - as exclusões de arquivos geralmente são permanentes na linha de comando do Linux, e um pequeno erro de digitação pode ser uma má notícia.