Como faço para remover / excluir um virtualenv?

485

Criei um ambiente com o seguinte comando: virtualenv venv --distribute

Não consigo removê-lo com o seguinte comando: rmvirtualenv venv- Isso faz parte do virtualenvwrapper conforme mencionado na resposta abaixo para virtualenvwrapper

Eu faço um lsno meu diretório atual e ainda vejo venv

A única maneira de removê-lo parece ser: sudo rm -rf venv

Observe que o ambiente não está ativo. Estou executando o Ubuntu 11.10. Alguma ideia? Eu tentei reiniciar meu sistema sem sucesso.

sudostack
fonte
13
Apenas remova o diretório.
Nathancahill 12/06/12
honk: sudo rmvirtualenv venv não é um comando válido. Não sei por que pensei que uma reinicialização ajudaria. Sou bastante novo, para ser sincero.
sudostack
24
Observe que rmvirtualenvvem com o virtualenvwrapper. Você precisa disso instalado para fazê-lo funcionar.
skytreader
4
Note que você também pode remover todos os pacotes atualmente instalados, mas manter o ambiente virtual em si, se tiver virtualenvwrapper instalado: $ virtualenv --clear path_to_my_venv. Uso-o de tempos em tempos para garantir que não tenho nada instalado manualmente, como uma dependência antiga que não está mais presente requirements.txt.
Taylor Edmiston
1
Não sudodeve ser necessário em circunstâncias normais. O ponto principal de um ambiente virtual é que você pode manipulá-lo usando sua conta de usuário comum.
Tripleee em 13/04

Respostas:

421

É isso aí! Não há comando para excluir seu ambiente virtual. Basta desativá-lo e livrar sua aplicação de seus artefatos removendo-o recursivamente.

Observe que é o mesmo, independentemente do tipo de ambiente virtual que você está usando. virtualenv, venv, Ambiente Anaconda, pyenv, pipenvsão todos baseados no mesmo princípio aqui.

Thomas Anthony
fonte
14
Vale ressaltar que, se você estiver usando o pip para instalar dependências, convém congelar o pip uma lista de dependências e manter no diretório de nível superior. Se você optar por implantar seu aplicativo posteriormente, não terá problemas.
Thomas Anthony
7
Por que isso é aceito e com tantos votos, quando a resposta correta é apenas abaixo? Talvez isto era para uma versão mais antiga do virtualenvwarpper
jsbueno
9
@jsbueno Ele estava usando virtualenv, não virtualenvwrapper (eles não são o mesmo programa). Na época, o virtualenv não fornecia interface para limpeza; você tinha que fazer isso sozinho.
Thomas Anthony
3
Se você criou um virtualenv em um repositório git (e os arquivos não são ignorados):git clean -dffx
Rex Hardin
172

Apenas para ecoar o que o @skytreader havia comentado anteriormente, rmvirtualenvé um comando fornecido por virtualenvwrapper, não virtualenv. Talvez você não tenha virtualenvwrapperinstalado?

Consulte a Referência de Comandos do VirtualEnvWrapper para obter mais detalhes.

Devy
fonte
113

Usar rmvirtualenv

Remova um ambiente, no $WORKON_HOME.

Sintaxe:

rmvirtualenv ENVNAME

Você deve usar desativar antes de remover o ambiente atual.

$ rmvirtualenv my_env

Referência: http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

Antoniazzi
fonte
2
existe até tabsuporte de conclusão para isso!
muon
13
Note-se que esta resposta está errada como o OP nunca disse que eles tinhamvirtualenvwrapper
KevinDTimm
@KevinDTimm Sim, mas para aqueles de nós com virtualenvwrapper, essa resposta é mais correta do que certa!
KhoPhi
73

Você pode remover todas as dependências desinstalando recursivamente todas elas e excluindo o venv.

Editar incluindo comentário de Isaac Turner

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/
Dawn T Cherian
fonte
2
Eu acho que você está faltando um deactivateantes dorm -r venv/
Isaac Turner
E criticamente, faça isso apenas se você não estiver compartilhando o sistema pip! (Caso contrário, você desinstalará todos os pacotes do sistema.)
orome
2
Na verdade, não deve ser necessário separadamente pip uninstallse você estiver removendo todos os pacotes, de rmqualquer maneira. Ignorar essa etapa também evita o risco apontado no comentário anterior.
Tripleee em 13/04
33

Simplesmente remova o ambiente virtual do sistema.Não existe um comando especial para ele

rm -rf venv
Naveen Agarwal
fonte
1
Funciona em mim. Desative primeiro se o seu ambiente virtual ainda estiver em execução. (seu env virtual)> Desativar> rm -rf "seu env virtual"
tthreetorch
Acho que a -fbandeira não é necessária. Prefiro evitar essa bandeira quando possível.
Will
31

do documento oficial do virtualenv https://virtualenv.pypa.io/en/stable/userguide/

Removendo um ambiente

A remoção de um ambiente virtual é simplesmente desativada e excluída a pasta do ambiente com todo o seu conteúdo:

(ENV)$ deactivate
$ rm -r /path/to/ENV
N.Lee
fonte
1
@ Sébastien Não, você não deve precisar de sudoprivilégios semelhantes, a menos que também os tenha usado para configurar o ambiente em primeiro lugar, o que geralmente seria um erro.
Tripleee
O link na sua resposta está quebrado no momento.
Will
8

Se você estiver usando pyenv, é possível excluir seu ambiente virtual:

$ pyenv virtualenv-delete <name>
Christiaan Herrewijn
fonte
6

O comando a seguir funciona para mim.

rm -rf /path/to/virtualenv
Ashiq Imran
fonte
mesmo aqui, existem efeitos colaterais conhecidos de fazer isso? Acabei de excluir a venvpasta
ajayramesh
Eu não tive nenhum efeito colateral
Ashiq Imran
4

Eu costumava pyenv uninstall my_virt_env_nameexcluir o ambiente viral.

Nota: Estou usando o pyenv-virtualenv instalado através do script de instalação.

Ole Henrik Skogstrøm
fonte
Obviamente, isso só é válido se você usar pyenv.
Tripleee em 13/04
3

Se você é um usuário do Windows e está usando o conda para gerenciar o ambiente no prompt do Anaconda, pode fazer o seguinte:

Certifique-se de desativar o ambiente virtual ou reiniciar o Anaconda Prompt. Use o seguinte comando para remover o ambiente virtual:

$ conda env remove --name $MyEnvironmentName

Como alternativa, você pode ir para o

C:\Users\USERNAME\AppData\Local\Continuum\anaconda3\envs\MYENVIRONMENTNAME

(esse é o caminho padrão do arquivo) e exclua a pasta manualmente.

CathyQian
fonte
1

se você é usuário do Windows, está em C: \ Users \ your_user_name \ Envs. Você pode excluí-lo de lá.

Tente também no prompt de comando o nome do ambiente rmvirtualenv.

Eu tentei com o prompt de comando, então ele dizia excluído, mas ainda existia. Então eu excluí-lo manualmente.

jahmed31
fonte
Na verdade, isso não é verdade. A localização do ambiente virtual realmente depende de onde você executa o virtualenvcomando. Por exemplo: C:\>virtualenv my_awesome_venvcriará o ambiente virtual no C:\my_awesome_venv.
Felix
Eu estava falando sobre o virtualwrapper. Meu erro
#
1

deactivateé o comando que você está procurando. Como o que já foi dito, não há comando para excluir seu ambiente virtual. Simplesmente desative-o!

garrettmac
fonte
Isso não responde à pergunta. Você está certo de que geralmente não precisa destruir seu virtualv, mas é sobre isso que o OP parece estar se perguntando.
tripleee
1

Se você é um usuário do Windows, também pode excluir o ambiente acessando: C:/Users/username/Anaconda3/envs Aqui, você pode ver uma lista do ambiente virtual e excluir o que não é mais necessário.

Shekhar
fonte
0

Você pode seguir estas etapas para remover todos os arquivos associados ao virtualenv e, em seguida, reinstalar o virtualenv novamente e usá-lo

cd {python virtualenv folder}

find {broken virtualenv}/ -type l                             ## to list out all the links

deactivate                                           ## deactivate if virtualenv is active

find {broken virtualenv}/ -type l -delete                    ## to delete the broken links

virtualenv {broken virtualenv} --python=python3           ## recreate links to OS's python

workon {broken virtualenv}                       ## activate & workon the fixed virtualenv

pip3 install  ... {other packages required for the project}
Khushhalm
fonte
-9

etapa 1: exclua virtualenv virtualenvwrapper copie e cole o seguinte comando abaixo:

$ sudo pip uninstall virtualenv virtualenvwrapper

etapa 2: vá para .bashrc e exclua todos os virtualenv e virtualenvwrapper

terminal aberto:

$ sudo nano .bashrc

role para baixo e você verá o código abaixo e exclua-o.

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

em seguida, forneça o arquivo .bashrc:

$ source ~/.bashrc

Etapas finais: sem o terminal / shell, vá para / home e encontre .virtualenv(esqueci o nome, por isso, se o seu encontrar for semelhante .virtualenvou .venvapenas excluí-lo. Isso funcionará.

Wanz Odiado
fonte
Isso parece responder a uma pergunta completamente diferente e deve vir com um grande aviso. Alguns dos conselhos também são ruins (a aquisição do seu .bashrcnovo não faz nada de útil e pode ter consequências indesejáveis).
Tripleee em 13/04