884

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.

8
  • 57
    Just remove the directory. Commented Jun 12, 2012 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. Commented Jun 12, 2012 at 21:57
  • 35
    Note that rmvirtualenv comes with virtualenvwrapper. You need that installed to make it work. Commented Apr 7, 2013 at 4: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. Commented Apr 15, 2015 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. Commented Apr 13, 2019 at 14:46

23 Answers 23

876

"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.

Sign up to request clarification or add additional context in comments.

7 Comments

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.
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 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.
If you've created a virtualenv in a git repo (and the files are not ignored): git clean -dffx
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?"
|
191

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.

Comments

160

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

1 Comment

there is even tab completion support for this!
140

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/

5 Comments

And critically only do this if you are not sharing the system's pip! (Otherwise you will uninstall all of your system packages.)
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.
rm -r venv/ did it for me, no need for the other steps indeed
@tripleee This answer removes things like symlinks in ~/.local/bin to programs in the venv, which only rm-ing the dir won't. It didn't touch system packages for me (not running with root/sudo). Instead it printed errors like "Not uninstalling simplejson at /usr/lib/python3/dist-packages, outside environment /home/username/path/to/venv/packagename" The pip commands may be condensed to pip uninstall -r <(pip freeze) -y.
@Walt But if you installed into a virtual environment any executables should be in venv/bin, not ~/.local/bin, no?
78

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

$ pyenv virtualenv-delete <name>

3 Comments

You can also run pyenv uninstall <name> as equivalent command
@giorgio in my case pyenv uninstall <name> did only remove the symlink from ~/.pyenv/versions/, leaving the environment untouched in ~/.pyenv/versions/<version>/envs/<name> (the same effect as rm -rf ~/.pyenv/versions/<name> has). Christiaan Herrewijn's method works as expected.
I need to correct myself: On some systems pyenv uninstall <name> works as expected, on some it only removes the symlink. I still need to find out why.
59

Simply delete the virtual environment from the system:

rm -rf venv

(There's no special command for it)

2 Comments

Works on me. Make sure to deactivate first if your virtual environment is still running. (your virtual env)>deactivate >rm -rf "your virtual env"
I find that the -f flag is not needed. I prefer to avoid that flag when possible.
54

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

1 Comment

@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.
33

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

1 Comment

this is just repetition of existing answers and platform specific advice that was never asked for.
14

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.

Comments

11

The following command works for me.

rm -rf /path/to/virtualenv

Comments

10

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.

1 Comment

adding to the answer $MyEnvironmentName is just MyEnvironmentName without a $sign
6

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.

Comments

4

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

1 Comment

This appears to repeat the solution from Ole Henrik from 5 years prior: stackoverflow.com/questions/11005457/…
3

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.

2 Comments

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.
i was talking about the virtualwrapper. My mistake
3

cd \environmentfolder_name\Scripts\deactivate.bat

enter image description here

Comments

3

Only this worked for me:

sudo rm -rf venv

Comments

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.

Comments

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!

1 Comment

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.
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}

Comments

0

For the new versions do:

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

Comments

0

Just use Anaconda Navigator to remove selected env.

enter image description here

1 Comment

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.
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

1 Comment

Do not do it. Simply kill all python processes may have extreme bad consequence since some python processes may be essential to your OS.
-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 Comment

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).

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.