Wie entferne / lösche ich eine virtuelle Umgebung?

485

Ich habe eine Umgebung mit dem folgenden Befehl erstellt: virtualenv venv --distribute

Ich kann es nicht mit dem folgenden Befehl entfernen: rmvirtualenv venv- Dies ist Teil von virtualenvwrapper, wie in der Antwort unten für virtualenvwrapper erwähnt

Ich mache eine lsin meinem aktuellen Verzeichnis und ich sehe immer noch venv

Der einzige Weg, wie ich es entfernen kann, scheint zu sein: sudo rm -rf venv

Beachten Sie, dass die Umgebung nicht aktiv ist. Ich verwende Ubuntu 11.10. Irgendwelche Ideen? Ich habe versucht, mein System ohne Erfolg neu zu starten.

Sudostack
quelle
13
Entfernen Sie einfach das Verzeichnis.
Nathancahill
honk: sudo rmvirtualenv venv ist kein gültiger Befehl. Ich bin mir nicht sicher, warum ich dachte, ein Neustart würde helfen. Ich bin ziemlich neu, um ehrlich zu sein.
Sudostack
24
Beachten Sie, dass rmvirtualenvmit virtualenvwrapper geliefert wird. Sie müssen das installiert haben, damit es funktioniert.
Skytreader
4
Beachten Sie, dass Sie auch alle derzeit installierten Pakete entfernen können. Behalten Sie jedoch die virtuelle Umgebung selbst bei, wenn Sie virtualenvwrapper installiert haben : $ virtualenv --clear path_to_my_venv. Ich benutze dies von Zeit zu Zeit, um sicherzustellen, dass ich nichts manuell installiert habe, wie eine alte Abhängigkeit, die nicht mehr vorhanden ist requirements.txt.
Taylor Edmiston
1
Das sudosollte unter normalen Umständen nicht notwendig sein. Der springende Punkt einer virtuellen Umgebung ist, dass Sie sie mit Ihrem regulären Benutzerkonto bearbeiten können.
Tripleee

Antworten:

421

Das ist es! Es gibt keinen Befehl zum Löschen Ihrer virtuellen Umgebung. Deaktivieren Sie es einfach und entfernen Sie die Artefakte Ihrer Anwendung, indem Sie es rekursiv entfernen.

Beachten Sie, dass dies unabhängig von der verwendeten virtuellen Umgebung gleich ist. virtualenv, venv, Anaconda Umgebung pyenv, pipenvsind nach dem gleichen Prinzip hier alle basieren.

Thomas Anthony
quelle
14
Wenn Sie pip zum Installieren von Abhängigkeiten verwenden, möchten Sie möglicherweise eine Abhängigkeitsliste einfrieren und im Verzeichnis der obersten Ebene bleiben. Wenn Sie sich später für die Bereitstellung Ihrer Anwendung entscheiden, werden Sie keine Probleme haben.
Thomas Anthony
7
Warum wird das akzeptiert und mit so vielen Stimmen, wenn die richtige Antwort nur unten ist? Vielleicht war dies für eine ältere Version von virtualenvwarpper
jsbueno
9
@jsbueno Er hat virtualenv verwendet, nicht virtualenvwrapper (sie sind nicht dasselbe Programm). Zu diesem Zeitpunkt stellte virtualenv keine Schnittstelle für die Bereinigung bereit. du musstest es selbst machen.
Thomas Anthony
3
Wenn Sie eine virtuelle Umgebung in einem Git-Repo erstellt haben (und die Dateien nicht ignoriert werden):git clean -dffx
Rex Hardin
172

Nur um zu wiederholen, was @skytreader zuvor kommentiert hatte, rmvirtualenvist ein Befehl von virtualenvwrapper, nicht virtualenv. Vielleicht haben Sie nicht virtualenvwrapperinstalliert?

Weitere Informationen finden Sie in der VirtualEnvWrapper-Befehlsreferenz .

Devy
quelle
113

Verwenden rmvirtualenv

Entfernen Sie eine Umgebung in der $WORKON_HOME.

Syntax:

rmvirtualenv ENVNAME

Sie müssen Deaktivieren verwenden, bevor Sie die aktuelle Umgebung entfernen.

$ rmvirtualenv my_env

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

Antoniazzi
quelle
2
tabDafür gibt es sogar Abschlussunterstützung!
Myon
13
Beachten Sie, dass diese Antwort falsch ist, da die OP nie gesagt hat, dass sie hattenvirtualenvwrapper
KevinDTimm
@ KevinDTimm Ja, aber für diejenigen von uns mit virtualenvwrapper ist diese Antwort "richtiger" als richtig!
KhoPhi
73

Sie können alle Abhängigkeiten entfernen, indem Sie alle rekursiv deinstallieren und dann das venv löschen.

Bearbeiten einschließlich Isaac Turner Kommentar

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/
Dawn T Cherian
quelle
2
Ich denke, Sie vermissen eine deactivatevor demrm -r venv/
Isaac Turner
Und tun Sie dies kritisch nur, wenn Sie die Systeme nicht teilen pip! (Andernfalls werden Sie alle Ihre Systempakete deinstallieren.)
orome
1
Eigentlich sollte es nicht nötig sein, separat zu arbeiten, pip uninstallwenn Sie rmsowieso alle Pakete entfernen . Das Überspringen dieses Schrittes vermeidet auch das Risiko, auf das im vorherigen Kommentar hingewiesen wurde.
Tripleee
33

Entfernen Sie einfach die virtuelle Umgebung aus dem System. Es gibt keinen speziellen Befehl dafür

rm -rf venv
Naveen Agarwal
quelle
1
Arbeitet an mir. Stellen Sie sicher, dass Sie zuerst deaktivieren, wenn Ihre virtuelle Umgebung noch ausgeführt wird. (Ihre virtuelle Umgebung)> deaktivieren> rm -rf "Ihre virtuelle
Umgebung
30

aus dem offiziellen Dokument von virtualenv https://virtualenv.pypa.io/en/stable/userguide/

Eine Umgebung entfernen

Das Entfernen einer virtuellen Umgebung erfolgt einfach durch Deaktivieren und Löschen des Umgebungsordners mit allen Inhalten:

(ENV)$ deactivate
$ rm -r /path/to/ENV
N.Lee
quelle
1
@ Sébastien Nein, Sie sollten keine sudooder ähnliche Berechtigungen benötigen, es sei denn, Sie haben sie auch zum erstmaligen Einrichten der Umgebung verwendet, was normalerweise ein Fehler wäre.
Tripleee
8

Wenn Sie pyenv verwenden, können Sie Ihre virtuelle Umgebung löschen:

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

Der folgende Befehl funktioniert für mich.

rm -rf /path/to/virtualenv
Ashiq Imran
quelle
Gleiche hier, irgendwelche bekannten Nebenwirkungen davon? Ich lösche gerade den venvOrdner
ajayramesh
Ich habe keine Nebenwirkungen bekommen
Ashiq Imran
4

Ich habe pyenv uninstall my_virt_env_namedie virale Umgebung gelöscht.

Hinweis: Ich verwende pyenv-virtualenv, das über das Installationsskript installiert wurde.

Ole Henrik Skogstrøm
quelle
Dies gilt natürlich nur, wenn Sie verwenden pyenv.
Tripleee
3

Wenn Sie ein Windows-Benutzer sind und conda zum Verwalten der Umgebung in der Anaconda-Eingabeaufforderung verwenden, können Sie Folgendes tun:

Stellen Sie sicher, dass Sie die virtuelle Umgebung deaktivieren oder Anaconda Prompt neu starten. Verwenden Sie den folgenden Befehl, um die virtuelle Umgebung zu entfernen:

$ conda env remove --name $MyEnvironmentName

Alternativ können Sie zum gehen

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

(das ist der Standarddateipfad) und löschen Sie den Ordner manuell.

CathyQian
quelle
1

Wenn Sie Windows-Benutzer sind, befindet es sich in C: \ Benutzer \ Ihr_Benutzername \ Envs. Sie können es von dort löschen.

Versuchen Sie auch in der Eingabeaufforderung rmvirtualenv Umgebungsname.

Ich habe es mit der Eingabeaufforderung versucht, also wurde gelöscht, aber es war noch vorhanden. Also lösche ich es manuell.

jahmed31
quelle
Eigentlich stimmt das nicht. Der Speicherort der virtuellen Umgebung hängt wirklich davon ab, wo Sie den virtualenvBefehl ausführen . Beispiel: C:\>virtualenv my_awesome_venvErstellt die virtuelle Umgebung in C:\my_awesome_venv.
Felix
Ich habe über den Virtualwrapper gesprochen. Mein Fehler
jahmed31
1

deactivateist der Befehl, den Sie suchen. Wie bereits erwähnt, gibt es keinen Befehl zum Löschen Ihrer virtuellen Umgebung. Einfach deaktivieren!

Garrettmac
quelle
Dies beantwortet die Frage nicht. Sie haben Recht, dass Sie Ihre virtuelle Umgebung normalerweise nicht zerstören müssen, aber das scheint das OP zu fragen.
Tripleee
1

Wenn Sie ein Windows-Benutzer sind, können Sie die Umgebung auch löschen, indem Sie auf Folgendes klicken: C:/Users/username/Anaconda3/envs Hier sehen Sie eine Liste der virtuellen Umgebungen und löschen die nicht mehr benötigte.

Shekhar
quelle
0

Sie können diese Schritte ausführen, um alle mit virtualenv verknüpften Dateien zu entfernen und anschließend virtualenv erneut zu installieren und zu verwenden

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
quelle
-9

Schritt 1: Löschen Sie virtualenv virtualenvwrapper, indem Sie den folgenden Befehl kopieren und einfügen:

$ sudo pip uninstall virtualenv virtualenvwrapper

Schritt 2: Gehen Sie zu .bashrc und löschen Sie alle virtualenv und virtualenvwrapper

offenes Terminal:

$ sudo nano .bashrc

Scrollen Sie nach unten und Sie werden den folgenden Code sehen, dann löschen Sie ihn.

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

Als nächstes geben Sie die .bashrc-Quelle ein:

$ source ~/.bashrc

ENDGÜLTIGE Schritte: Ohne Terminal / Shell gehen Sie zu / home und suchen .virtualenv(ich habe den Namen vergessen, wenn Ihr Fund ähnlich ist .virtualenvoder ihn .venveinfach löscht. Das wird funktionieren.

Wanz hasste
quelle
Dies scheint eine völlig andere Frage zu beantworten und sollte mit einer großen Warnung einhergehen. Einige der Ratschläge sind auch schlecht (die .bashrcerneute Beschaffung ist nicht sinnvoll und kann unerwünschte Folgen haben).
Tripleee