783

I created an environment with the following command: virtualenv venv --distribute

Trying to remove it with the following command: rmvirtualenv venv does not work.

I do an lson my current directory and I still see venv

The only way I can remove it seems to be: sudo rm -rf venv

Note that the environment is not active. I'm running Ubuntu 11.10. Any ideas? I've tried rebooting my system to no avail.

TylerH
  • 20,799
  • 66
  • 75
  • 101
wulymammoth
  • 8,121
  • 4
  • 19
  • 19
  • 47
    Just remove the directory. – nathancahill Jun 12 '12 at 21:57
  • honk: sudo rmvirtualenv venv is not a valid command. Not sure why I thought a reboot would help. I'm fairly new, to be a honest. – wulymammoth Jun 12 '12 at 21:57
  • 34
    Note that `rmvirtualenv` comes with virtualenvwrapper. You need that installed to make it work. – skytreader Apr 07 '13 at 04:34
  • 5
    Note that you can also remove all currently installed packages, but keep the virtual environment itself if you have virtualenvwrapper installed: `$ virtualenv --clear path_to_my_venv`. I use this from time to time to make sure I don't have anything manually installed, like an old dependency no longer in `requirements.txt`. – Taylor D. Edmiston Apr 15 '15 at 16:08
  • 3
    The `sudo` should not be necessary under normal circumstances. The whole point of a virtual environment is that you can manipulate it using your regular user account. – tripleee Apr 13 '19 at 14:46
  • As of `virtualenvwrapper-4.8.4-1` (year 2019!), the command `rmvirtualenv` does the whole job as expected. No need to do a `rm -rf VENV`. – sphakka Jun 12 '19 at 13:07
  • Note for future readers that --distribute is deprecated (https://virtualenv.pypa.io/en/stable/reference/#cmdoption-distribute) – Simon D Sep 20 '19 at 02:22

22 Answers22

763

"The only way I can remove it seems to be: sudo rm -rf venv"

That's it! There is no command for deleting your virtual environment. Simply deactivate it and rid your application of its artifacts by recursively removing it.

Note that this is the same regardless of what kind of virtual environment you are using. virtualenv, venv, Anaconda environment, pyenv, pipenv are all based the same principle here.

Kostas Minaidis
  • 4,681
  • 3
  • 17
  • 25
Thomas Anthony
  • 7,853
  • 1
  • 14
  • 7
  • 25
    It's worth noting that if you are using pip to install dependencies, you might want to pip freeze a dependency list and keep at the top level directory. If you later choose to deploy your application, you won't have a bit of trouble. – Thomas Anthony Jun 12 '12 at 22:18
  • 7
    Why is this accepted and with this much votes, when the correct answer is just bellow? Maybe this was for an older version of virtualenvwarpper – jsbueno Aug 28 '15 at 15:11
  • 11
    @jsbueno He was using virtualenv, not virtualenvwrapper (they are not the same program). At the time, virtualenv provided no interface for clean up; you had to do it yourself. – Thomas Anthony Jan 23 '16 at 02:12
  • 3
    If you've created a virtualenv in a git repo (and the files are not ignored): `git clean -dffx` – Rex Hardin Feb 22 '18 at 03:35
  • From a suggested edit: "I think this is not strictly speaking valid for conda environments, as Anaconda makes other changes on file system which won't be covered by 'rm -rf...', e.g. user-specific environments.txt file may also need to be edited?" – pppery Mar 10 '22 at 21:33
186

Just to echo what @skytreader had previously commented, rmvirtualenv is a command provided by virtualenvwrapper, not virtualenv. Maybe you didn't have virtualenvwrapper installed?

See VirtualEnvWrapper Command Reference for more details.

Devy
  • 9,655
  • 8
  • 61
  • 59
149

rmvirtualenv is a command for virtualenvwrapper. It won't work if you don't have that installed.

Using virtualenvwrapper, to remove an environment, in the $WORKON_HOME:

Syntax:

rmvirtualenv ENVNAME

You must use deactivate before removing the current environment.

$ rmvirtualenv my_env

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

TylerH
  • 20,799
  • 66
  • 75
  • 101
Antoniazzi
  • 1,652
  • 1
  • 10
  • 9
115

You can remove all the dependencies by recursively uninstalling all of them and then delete the venv.

source venv/bin/activate
pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
deactivate
rm -r venv/
TylerH
  • 20,799
  • 66
  • 75
  • 101
Dawn T Cherian
  • 4,968
  • 3
  • 24
  • 35
  • 3
    And *critically* only do this if you are not sharing the system's `pip`! (Otherwise you will uninstall all of your system packages.) – orome Jan 09 '18 at 17:29
  • 12
    Actually there should be no need to separately `pip uninstall` if you are removing all the packages by way of `rm` anyway. Skipping that stepealso avoids the risk pointed out in the previous comment. – tripleee Apr 13 '19 at 14:43
  • 2
    `rm -r venv/` did it for me, no need for the other steps indeed – Hedge92 Nov 11 '22 at 08:15
74

If you are using pyenv, it is possible to delete your virtual environment:

$ pyenv virtualenv-delete <name>
Christiaan Herrewijn
  • 1,031
  • 10
  • 11
  • 5
    You can also run `pyenv uninstall ` as equivalent command – giorgio Oct 22 '21 at 10:10
  • @giorgio in my case `pyenv uninstall ` did only remove the symlink from `~/.pyenv/versions/`, leaving the environment untouched in `~/.pyenv/versions//envs/` (the same effect as `rm -rf ~/.pyenv/versions/` has). Christiaan Herrewijn's method works as expected. – Daniel F Oct 14 '22 at 11:04
  • I need to correct myself: On some systems `pyenv uninstall ` works as expected, on some it only removes the symlink. I still need to find out why. – Daniel F Oct 14 '22 at 11:24
51

Simply delete the virtual environment from the system:

rm -rf venv

(There's no special command for it)

Moot
  • 2,195
  • 2
  • 17
  • 14
Naveen Agarwal
  • 930
  • 7
  • 7
  • 4
    Works on me. Make sure to deactivate first if your virtual environment is still running. (your virtual env)>deactivate >rm -rf "your virtual env" – tthreetorch Dec 02 '19 at 02:22
  • 2
    I find that the `-f` flag is not needed. I prefer to avoid that flag when possible. – Will Jun 11 '20 at 17:02
48

from virtualenv's official document https://virtualenv.pypa.io/en/latest/user_guide.html

Removing an Environment

Removing a virtual environment is simply done by deactivating it and deleting the environment folder with all its contents:

(ENV)$ deactivate
$ rm -r /path/to/ENV
Moot
  • 2,195
  • 2
  • 17
  • 14
N.Lee
  • 986
  • 7
  • 13
  • 1
    @Sébastien No, you should not need `sudo` or similar privileges unless you also used them to set up the environment in the first place, which would usually be an error. – tripleee Apr 13 '19 at 14:40
31

1. Remove the Python environment

There is no command to remove a virtualenv so you need to do that by hand, you will need to deactivate if you have it on and remove the folder:

deactivate
rm -rf <env path>

2. Create an env. with another Python version

When you create an environment the python uses the current version by default, so if you want another one you will need to specify at the moment you are creating it. To make and env. with Python 3.X called MyEnv just type:

python3.X -m venv MyEnv

Now to make with Python 2.X use virtualenv instead of venv:

python2.X -m virtualenv MyEnv

3. List all Python versions on my machine

If any of the previous lines of code didn't worked you probably don't have the specific version installed. First list all your versions with:

ls -ls /usr/bin/python*

If you didn't find it, install Python 3.X using apt-get:

sudo apt-get install python3.X
11

With pyenv, you can use pyenv uninstall my_virt_env_name to delete the virual environment.

Note: I'm using pyenv-virtualenv installed through the install script.

TylerH
  • 20,799
  • 66
  • 75
  • 101
Ole Henrik Skogstrøm
  • 6,353
  • 10
  • 57
  • 89
10

The following command works for me.

rm -rf /path/to/virtualenv
Ashiq Imran
  • 2,077
  • 19
  • 17
8

If you are a Windows user and you are using conda to manage the environment in Anaconda prompt, you can do the following:

Make sure you deactivate the virtual environment or restart Anaconda Prompt. Use the following command to remove virtual environment:

$ conda env remove --name $MyEnvironmentName

Alternatively, you can go to the

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

(that's the default file path) and delete the folder manually.

Shekhar
  • 347
  • 3
  • 13
CathyQian
  • 1,081
  • 15
  • 30
5

Actually requires two deletions.

The project folder which everyone in this thread already said you simply delete manually or using rm -r projectfoldername

But then you also need to delete the actual virtualenv located in macOS /Users/edison/.pyenv/versions/3.8.0/envs/myspecialenv.

You can do that by doing pyenv virtualenv-delete myspecialenv or manual removal.

Edison
  • 11,881
  • 5
  • 42
  • 50
2

if you are windows user, then it's in C:\Users\your_user_name\Envs. You can delete it from there.

Also try in command prompt rmvirtualenv environment name.

I tried with command prompt so it said deleted but it was still existed. So i manually delete it.

jahmed31
  • 31
  • 1
  • Actually this isn't true. The location of the virtual environment really depends on where you execute the `virtualenv` command. E.g.: `C:\>virtualenv my_awesome_venv` will create the virtual environment in `C:\my_awesome_venv`. – Felix Apr 01 '17 at 11:55
  • i was talking about the virtualwrapper. My mistake – jahmed31 Apr 01 '17 at 12:11
2

cd \environmentfolder_name\Scripts\deactivate.bat

enter image description here

Vivek Raj
  • 353
  • 3
  • 3
2

If you are using pyenv virtualenv < https://github.com/pyenv/pyenv > to centrally manage python versions and virtual environment the solution would be

pyenv uninstall some_env

(Assuming that you have set up your bash .szh profile correctly.)

The solution to this issue is also answered here:

https://github.com/pyenv/pyenv-virtualenv/issues/17

TylerH
  • 20,799
  • 66
  • 75
  • 101
fdsig
  • 268
  • 2
  • 5
  • This appears to repeat the solution from Ole Henrik from _5 years prior_: https://stackoverflow.com/questions/11005457/how-do-i-remove-delete-a-virtualenv/47878426#47878426 – TylerH May 26 '23 at 16:06
1

If you're a windows user, you can also delete the environment by going to: C:/Users/username/Anaconda3/envs Here you can see a list of virtual environment and delete the one that you no longer need.

Shekhar
  • 347
  • 3
  • 13
0

deactivate is the command you are looking for. Like what has already been said, there is no command for deleting your virtual environment. Simply deactivate it!

garrettmac
  • 8,417
  • 3
  • 41
  • 60
  • 2
    This doesn't answer the question. You are correct that you usually don't need to destroy your virtualenv, but that's what the OP seems to be asking about. – tripleee Apr 13 '19 at 14:41
0

You can follow these steps to remove all the files associated with virtualenv and then reinstall the virtualenv again and using it

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}

Khushhal
  • 645
  • 11
  • 18
0

For the new versions do:

  1. conda deactivate
  2. conda env remove -n env_name
0

Just use Anaconda Navigator to remove selected env.

enter image description here

  • 3
    Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jul 06 '22 at 05:15
0

It is possible that some resources will be activated, making it impossible to just delete the directory. All Python processes should be stopped in advance:

pkill -9 python
rm -rf venv
  • Do not do it. Simply kill all python processes may have extreme bad consequence since some python processes may be essential to your OS. – cheng10 Feb 28 '23 at 10:45
-9

step 1: delete virtualenv virtualenvwrapper by copy and paste the following command below:

$ sudo pip uninstall virtualenv virtualenvwrapper

step 2: go to .bashrc and delete all virtualenv and virtualenvwrapper

open terminal:

$ sudo nano .bashrc

scroll down and you will see the code bellow then delete it.

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

next, source the .bashrc:

$ source ~/.bashrc

FINAL steps: without terminal/shell go to /home and find .virtualenv (I forgot the name so if your find similar to .virtualenv or .venv just delete it. That will work.

  • 1
    This appears to answer a completely different question, and should come with a huge warning. Some of the advice is also poor (sourcing your `.bashrc` again does nothing useful, and could have unwelcome consequences). – tripleee Apr 13 '19 at 14:37