How to reset virtualenv and pip?

29,163

Solution 1

Best way to reset the virtual environment

Windows environment use the below command:

pip freeze > unins && pip uninstall -y -r unins && del unins

Linux environemnt use the below command:

pip freeze > unins && pip uninstall -y -r unins && rm unins

Solution 2

As far as I can tell, the only purpose of a venv is to manage dependencies.

You should be safe to just deactivate the venv, delete it, and create a new one using virtualenv venv; source venv/bin/activate.

This will give you a fresh start.

Solution 3

This question is old, but it got bumped to the front page, so it's hard to discern which versions of pip and virtualenv you are using.

There are a few things we can do to straighten this, nonetheless.

  1. Exit all virtualenvs, and check your $PYTHONPATH. Make sure it's empty; else run unset PYTHONPATH.
  2. Create a fresh virtualenv at myenv using virtualenv --no-site-packages myenv.
  3. Activate myenv and check your $PYTHONPATH again. It should only have myenv.
  4. Run pip with an absolute path, like so myenv/bin/pip freeze.
  5. If pip is not available inside your virtualenv, you may have to install it manually.

Related: virtualenv --no-site-packages and pip still finding global packages?

Finally, start a python shell using myenv/bin/python, then run:

>>> import sys
>>> sys.path

If pip can find wsgiref, then wsgiref must be in one of the paths in sys.path. Use that clue!

Solution 4

You can just delete your .venv file to remove all dependencies and then run python3 -m venv .venv for a fresh virtual environment.

Share:
29,163
Sushi
Author by

Sushi

Updated on July 09, 2022

Comments

  • Sushi
    Sushi almost 2 years

    I installed virtualenv on my Ubuntu 10.04 server.

    Now when I do pip freeze it shows me the following packages:

    Django==1.2.4
    distribute==0.6.10
    python-apt==0.7.94.2ubuntu6.2
    virtualenv==1.5.1
    wsgiref==0.1.2
    

    When I do "pip uninstall Django" it says:

    pip uninstall Django
    Uninstalling Django:
    Proceed (y/n)? y
    Successfully uninstalled Django
    

    Ideally this should uninstall Django but it doesn't. I can still see the same packages when I do "pip freeze".

    Now bear with me, the other weird thing is that when I create a virtualenv and then do "pip freeze" inside it, I see only one package and that is "wsgiref" which is weird because it should ideally be blank.

    Also, in spite of creating this virtualenv with --no-site-packages I can still create a new django project with "django-admin.py startproject".

    When I start python interpreter inside this virtualenv and do "import django" it gives me the error "No module named django".

    Also when I try to install "pip install Django" inside the virtualenv it asks for sudo permissions which shouldn't happen ideally.

    How do I sort out this mess. Any way to just reset everything pep and virtualenv?