Jak usunąć / usunąć virtualenv?

483

Utworzyłem środowisko za pomocą następującego polecenia: virtualenv venv --distribute

Nie mogę go usunąć za pomocą następującego polecenia: rmvirtualenv venv- Jest to część virtualenvwrapper, jak wspomniano w odpowiedzi poniżej dla virtualenvwrapper

Robię lsw moim bieżącym katalogu i nadal widzę venv

Jedynym sposobem na usunięcie tego wydaje się: sudo rm -rf venv

Pamiętaj, że środowisko nie jest aktywne. Używam Ubuntu 11.10. Jakieś pomysły? Próbowałem zrestartować system bezskutecznie.

sudostack
źródło
13
Po prostu usuń katalog.
nathancahill
honk: sudo rmvirtualenv venv nie jest prawidłowym poleceniem. Nie jestem pewien, dlaczego myślałem, że ponowne uruchomienie może pomóc. Jestem całkiem nowy, szczerze mówiąc.
sudostack
24
Uwaga, która rmvirtualenvpochodzi z virtualenvwrapper. Musisz go zainstalować, aby działał.
skytreader,
4
Należy pamiętać, że można również usunąć wszystkie aktualnie zainstalowanych pakietów, ale się zachować środowisku wirtualnym jeśli virtualenvwrapper zainstalowane: $ virtualenv --clear path_to_my_venv. Używam tego od czasu do czasu, aby upewnić się, że nie mam niczego zainstalowanego ręcznie, jak na przykład starej zależności requirements.txt.
Taylor Edmiston,
1
Nie sudopowinno to być konieczne w normalnych okolicznościach. Istotą wirtualnego środowiska jest to, że można nim manipulować przy użyciu zwykłego konta użytkownika.
tripleee

Odpowiedzi:

420

Otóż ​​to! Nie ma polecenia do usunięcia środowiska wirtualnego. Po prostu go dezaktywuj i pozbądź się aplikacji z artefaktów, usuwając go rekurencyjnie.

Pamiętaj, że jest tak samo niezależnie od używanego środowiska wirtualnego. virtualenv, venv, Środowisko Anakonda pyenv, pipenvsą oparte na tej samej zasadzie tutaj.

Thomas Anthony
źródło
14
Warto zauważyć, że jeśli używasz pipa do instalowania zależności, możesz chcieć zamrozić listę zależności i przechowywać w katalogu najwyższego poziomu. Jeśli później zdecydujesz się wdrożyć aplikację, nie będziesz miał kłopotów.
Thomas Anthony
7
Dlaczego jest to akceptowane i przy tak dużej liczbie głosów, kiedy poprawna odpowiedź jest tylko poniżej? Być może
dotyczyło
9
@jsbueno Używał virtualenv, a nie virtualenvwrapper (to nie jest ten sam program). W tym czasie virtualenv nie zapewniał interfejsu do czyszczenia; musiałeś to zrobić sam.
Thomas Anthony
3
Jeśli utworzyłeś virtualenv w repozytorium git (a pliki nie są ignorowane):git clean -dffx
Rex Hardin
172

Aby powtórzyć to, co wcześniej skomentował @skytreader, rmvirtualenvjest to polecenie dostarczone przez virtualenvwrapper, a nie virtualenv. Może nie virtualenvwrapperzainstalowałeś?

Aby uzyskać więcej informacji, zobacz Dokumentacja poleceń VirtualEnvWrapper .

Devy
źródło
113

Posługiwać się rmvirtualenv

Usuń środowisko w $WORKON_HOME.

Składnia:

rmvirtualenv ENVNAME

Musisz dezaktywować przed usunięciem bieżącego środowiska.

$ rmvirtualenv my_env

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

Antoniazzi
źródło
2
istnieje nawet tabwsparcie dla ukończenia tego!
muon
13
Zauważ, że ta odpowiedź jest błędna, ponieważ OP nigdy nie powiedział, że takvirtualenvwrapper
KevinDTimm
@KevinDTimm Tak, ale dla tych z nas, którzy mają virtualenvwrapper, ta odpowiedź jest „bardziej rygorystyczna” niż słuszna!
KhoPhi
73

Możesz usunąć wszystkie zależności, rekurencyjnie odinstalowując je wszystkie, a następnie usuwając venv.

Edytuj, w tym komentarz Izaaka Turnera

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/
Dawn T Cherian
źródło
2
Myślę, że tęsknisz deactivateprzedrm -r venv/
Isaac Turner,
I krytycznie rób to tylko wtedy, gdy nie udostępniasz systemu pip! (W przeciwnym razie odinstalujesz wszystkie pakiety systemowe.)
orome
1
W rzeczywistości nie powinno być potrzeby oddzielnego pip uninstallusuwania wszystkich pakietów rm. Pominięcie tego kroku pozwala także uniknąć ryzyka wskazanego w poprzednim komentarzu.
tripleee
33

Po prostu usuń środowisko wirtualne z systemu, nie ma dla niego specjalnego polecenia

rm -rf venv
Naveen Agarwal
źródło
1
Działa na mnie. Wyłącz najpierw, jeśli środowisko wirtualne jest nadal uruchomione. (your virtual env)> dezaktywuj> rm -rf "your virtual env"
tthreetorch
30

z oficjalnego dokumentu virtualenv https://virtualenv.pypa.io/en/stable/userguide/

Usuwanie środowiska

Usunięcie środowiska wirtualnego odbywa się po prostu przez jego dezaktywację i usunięcie folderu środowiska wraz z całą zawartością:

(ENV)$ deactivate
$ rm -r /path/to/ENV
N.Lee
źródło
1
@ Sébastien Nie, nie powinieneś potrzebować sudoani podobnych uprawnień, chyba że użyjesz ich również do skonfigurowania środowiska, co zwykle byłoby błędem.
tripleee
8

Jeśli używasz pyenv, możesz usunąć swoje wirtualne środowisko:

$ pyenv virtualenv-delete <name>
Christiaan Herrewijn
źródło
6

Następujące polecenie działa dla mnie.

rm -rf /path/to/virtualenv
Ashiq Imran
źródło
to samo tutaj, jakieś znane skutki uboczne robienia tego? Właśnie venv
usuwam
Nie dostałem żadnych skutków ubocznych
Ashiq Imran
4

Kiedyś pyenv uninstall my_virt_env_name, aby usunąć virual środowiska.

Uwaga: używam pyenv-virtualenv zainstalowanego za pomocą skryptu instalacyjnego.

Ole Henrik Skogstrøm
źródło
Jest to oczywiście ważne tylko wtedy, gdy używasz pyenv.
tripleee
3

Jeśli jesteś użytkownikiem systemu Windows i używasz conda do zarządzania środowiskiem w pytaniu Anaconda, możesz wykonać następujące czynności:

Pamiętaj, aby dezaktywować środowisko wirtualne lub ponownie uruchomić Anaconda Monituj. Użyj następującego polecenia, aby usunąć środowisko wirtualne:

$ conda env remove --name $MyEnvironmentName

Alternatywnie możesz przejść do

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

(jest to domyślna ścieżka pliku) i usuń folder ręcznie.

CathyQian
źródło
1

jeśli jesteś użytkownikiem systemu Windows, to jest w C: \ Users \ twoja_nazwa_użytkownika \ Envs. Możesz go stamtąd usunąć.

Spróbuj także w wierszu polecenia nazwy środowiska rmvirtualenv.

Próbowałem z wiersza polecenia, więc było napisane usunięte, ale nadal istniało. Więc ręcznie to usunęłam.

jahmed31
źródło
W rzeczywistości to nie jest prawda. Lokalizacja środowiska wirtualnego naprawdę zależy od miejsca wykonania virtualenvpolecenia. Np .: C:\>virtualenv my_awesome_venvutworzy środowisko wirtualne w C:\my_awesome_venv.
Felix
mówiłem o wirtualnym owinięciu. Mój błąd
jahmed31
1

deactivateto polecenie, którego szukasz. Jak już powiedziano, nie ma polecenia do usunięcia środowiska wirtualnego. Po prostu go dezaktywuj!

garrettmac
źródło
To nie odpowiada na pytanie. Masz rację, że zwykle nie musisz niszczyć swojej wirtualnej gry, ale o to chyba prosi OP.
tripleee
1

Jeśli jesteś użytkownikiem systemu Windows, możesz również usunąć środowisko, przechodząc do: C:/Users/username/Anaconda3/envs Tutaj możesz zobaczyć listę środowiska wirtualnego i usunąć to, czego już nie potrzebujesz.

Shekhar
źródło
0

Możesz wykonać te kroki, aby usunąć wszystkie pliki związane z virtualenv, a następnie ponownie zainstalować virtualenv i używać go

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}
Chuszhalm
źródło
-9

krok 1: usuń virtualenv virtualenvwrapper, kopiując i wklej następujące polecenie poniżej:

$ sudo pip uninstall virtualenv virtualenvwrapper

krok 2: przejdź do .bashrc i usuń wszystkie virtualenv i virtualenvwrapper

terminal otwarty:

$ sudo nano .bashrc

przewiń w dół, a zobaczysz poniższy kod, a następnie go usuń.

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

następnie źródło .bashrc:

$ source ~/.bashrc

KOŃCOWE kroki: bez terminala / powłoki przejdź do / home i znajdź .virtualenv(zapomniałem nazwy, więc jeśli twoje znalezisko jest podobne .virtualenvlub .venvpo prostu ją usuń. To zadziała.

Wanz Nienawidził
źródło
To wydaje się odpowiadać na zupełnie inne pytanie i powinno przynieść ogromne ostrzeżenie. Niektóre porady są również słabe (pozyskiwanie .bashrcponownie nie robi nic pożytecznego i może mieć niepożądane skutki).
tripleee