Come rimuovo / elimino un virtualenv?


485

Ho creato un ambiente con il seguente comando: virtualenv venv --distribute

Non riesco a rimuoverlo con il seguente comando: rmvirtualenv venv- Fa parte di virtualenvwrapper come indicato nella risposta seguente per virtualenvwrapper

Lo faccio lssulla mia directory corrente e vedo ancora venv

L'unico modo per rimuoverlo sembra essere: sudo rm -rf venv

Si noti che l'ambiente non è attivo. Sto eseguendo Ubuntu 11.10. Qualche idea? Ho provato a riavviare il mio sistema senza risultati.


13
Basta rimuovere la directory.
nathancahill,

honk: sudo rmvirtualenv venv non è un comando valido. Non sono sicuro del motivo per cui ho pensato che un riavvio avrebbe aiutato. Sono abbastanza nuovo, a dire il vero.
sudostack,

24
Si noti che rmvirtualenvviene fornito con virtualenvwrapper. È necessario che sia installato per farlo funzionare.
skytreader

4
Si noti che è possibile anche rimuovere tutti i pacchetti attualmente installati, ma mantenere l'ambiente virtuale in sé se si è installato virtualenvwrapper: $ virtualenv --clear path_to_my_venv. Lo uso di tanto in tanto per assicurarmi di non aver installato nulla manualmente, come una vecchia dipendenza non più presente requirements.txt.
Taylor Edmiston,

1
Non sudodovrebbe essere necessario in circostanze normali. Il punto centrale di un ambiente virtuale è che puoi manipolarlo usando il tuo normale account utente.
tripleee

Risposte:


421

Questo è tutto! Non esiste alcun comando per l'eliminazione dell'ambiente virtuale. Basta disattivarlo e liberare l'applicazione dei suoi artefatti rimuovendolo in modo ricorsivo.

Si noti che questo è lo stesso indipendentemente dal tipo di ambiente virtuale che si sta utilizzando. virtualenv, venv, Ambiente Anaconda, pyenv, pipenvsono tutti basati lo stesso principio qui.


14
Vale la pena notare che se si utilizza pip per installare dipendenze, è possibile che si desideri bloccare pip un elenco di dipendenze e mantenerlo nella directory di livello superiore. Se in seguito scegli di distribuire la tua applicazione, non avrai problemi.
Thomas Anthony,

7
Perché questo è accettato e con così tanti voti, quando la risposta corretta è appena sotto? Forse questo era per una versione precedente di virtualenvwarpper
jsbueno,

9
@jsbueno Stava usando virtualenv, non virtualenvwrapper (non sono lo stesso programma). All'epoca, virtualenv non forniva alcuna interfaccia per la pulizia; dovevi farlo da solo.
Thomas Anthony,

3
Se hai creato un virtualenv in un repository git (e i file non vengono ignorati):git clean -dffx
Rex Hardin

172

Giusto per fare eco a ciò che @skytreader aveva precedentemente commentato, rmvirtualenvè un comando fornito da virtualenvwrapperno virtualenv. Forse non l'hai virtualenvwrapperinstallato?

Vedere Riferimento sui comandi VirtualEnvWrapper per maggiori dettagli.


113

Uso rmvirtualenv

Rimuovere un ambiente, in $WORKON_HOME.

Sintassi:

rmvirtualenv ENVNAME

È necessario utilizzare Disattiva prima di rimuovere l'ambiente corrente.

$ rmvirtualenv my_env

Riferimento: http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html


2
c'è persino un tabsupporto completo per questo!
muon

13
Si noti che questa risposta è errata poiché l'OP non ha mai detto di averlo fattovirtualenvwrapper
KevinDTimm il

@KevinDTimm Sì, ma per quelli di noi con virtualenvwrapper, questa risposta è "più giusta" che giusta!
KhoPhi,

73

È possibile rimuovere tutte le dipendenze disinstallandole in modo ricorsivo e quindi eliminando venv.

Modifica compreso il commento di Isaac Turner

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/

2
Penso che ti manchi un deactivateprima delrm -r venv/
Isaac Turner il

E farlo criticamente solo se non condividi il sistema pip! (Altrimenti disinstallerai tutti i tuoi pacchetti di sistema.)
orome

2
In realtà non dovrebbe essere necessario separatamente pip uninstallse si stanno rimuovendo tutti i pacchetti in rmogni caso. Saltare questo stepeal evita anche il rischio sottolineato nel commento precedente.
Tripleee

33

Rimuovi semplicemente l'ambiente virtuale dal sistema. Non esiste un comando speciale per esso

rm -rf venv

1
Funziona su di me. Assicurati di disattivare prima se l'ambiente virtuale è ancora in esecuzione. (il tuo env virtuale)> disattivare> rm -rf "il tuo env virtuale"
tthreetorch

Trovo che la -fbandiera non sia necessaria. Preferisco evitare quella bandiera quando possibile.
Sarà

31

dal documento ufficiale di virtualenv https://virtualenv.pypa.io/en/stable/userguide/

Rimozione di un ambiente

La rimozione di un ambiente virtuale avviene semplicemente disattivandolo ed eliminando la cartella di ambiente con tutto il suo contenuto:

(ENV)$ deactivate
$ rm -r /path/to/ENV

1
@ Sébastien No, non dovresti avere bisogno sudoo privilegi simili a meno che tu non li abbia usati per impostare l'ambiente in primo luogo, il che di solito sarebbe un errore.
Tripleee

Il link nella tua risposta è attualmente interrotto.
Sarà

9

Se stai usando pyenv, è possibile eliminare il tuo ambiente virtuale:

$ pyenv virtualenv-delete <name>

6

Il seguente comando funziona per me.

rm -rf /path/to/virtualenv

stesso qui, qualche effetto collaterale noto nel fare questo? Ho appena eliminato la venvcartella
ajayramesh

Non ho avuto effetti collaterali
Ashiq Imran,

4

Ho usato pyenv uninstall my_virt_env_nameper eliminare l'ambiente virual.

Nota: sto usando pyenv-virtualenv installato tramite lo script di installazione.


Questo è ovviamente valido solo se lo usi pyenv.
Tripleee

3

Se sei un utente Windows e stai usando conda per gestire l'ambiente nel prompt di Anaconda, puoi fare quanto segue:

Assicurati di disattivare l'ambiente virtuale o di riavviare Anaconda Prompt. Utilizzare il comando seguente per rimuovere l'ambiente virtuale:

$ conda env remove --name $MyEnvironmentName

In alternativa, puoi andare al

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

(questo è il percorso del file predefinito) ed elimina manualmente la cartella.


1

se sei un utente Windows, allora è in C: \ Users \ nome_utente \ Envs. Puoi eliminarlo da lì.

Prova anche nel prompt dei comandi nome ambiente rmvirtualenv.

Ho provato con il prompt dei comandi in modo che dicesse cancellato ma esisteva ancora. Quindi lo elimino manualmente.


In realtà questo non è vero. La posizione dell'ambiente virtuale dipende davvero da dove si esegue il virtualenvcomando. Ad esempio: C:\>virtualenv my_awesome_venvcreerà l'ambiente virtuale in C:\my_awesome_venv.
Felix

stavo parlando del virtualwrapper. Il mio errore
jahmed31

1

deactivateè il comando che stai cercando. Come quello che è già stato detto, non esiste alcun comando per eliminare l'ambiente virtuale. Basta disattivarlo!


Questo non risponde alla domanda. Hai ragione sul fatto che di solito non hai bisogno di distruggere il tuo virtualenv, ma questo è ciò di cui l'OP sembra chiedere.
tripleee

1

Se sei un utente Windows, puoi anche eliminare l'ambiente andando su: C:/Users/username/Anaconda3/envs Qui puoi vedere un elenco di ambienti virtuali ed eliminare quello che non ti serve più.


0

È possibile seguire questi passaggi per rimuovere tutti i file associati a virtualenv e quindi reinstallare nuovamente virtualenv e utilizzarlo

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}

-9

passaggio 1: elimina virtualenv virtualenvwrapper copiando e incollando il seguente comando di seguito:

$ sudo pip uninstall virtualenv virtualenvwrapper

passaggio 2: vai su .bashrc ed elimina tutto virtualenv e virtualenvwrapper

terminale aperto:

$ sudo nano .bashrc

scorri verso il basso e vedrai il codice qui sotto, quindi eliminalo.

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

quindi, sorgente .bashrc:

$ source ~/.bashrc

Passaggi FINALI: senza terminale / shell vai su / home e trova .virtualenv(ho dimenticato il nome, quindi se trovi simile .virtualenvo .venvsemplicemente cancellalo. Funzionerà.


Questo sembra rispondere a una domanda completamente diversa e dovrebbe venire con un grande avvertimento. Alcuni dei consigli sono scarsi (l'approvvigionamento .bashrcnon fa nulla di utile e potrebbe avere conseguenze indesiderate).
Tripleee
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.