Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to rename a virtualenv in Python?

I misspelled the name of the virtualenv while initializing it using:

$ virtualenv vnev 

I actually intended to create the environment with the name venv. Having tried to rename the vnev folder to venv, I find that this doesn't provide much help. The name of the activate environment still renames the old vnev.

$ mv vnev venv $ . venv/bin/activate (vnev) $ deactivate 

I would like to know how to go about renaming the environment?

like image 700
Kshitij Saraogi Avatar asked Apr 06 '17 13:04

Kshitij Saraogi


People also ask

How do I change virtualenv?

By default, that will be the version of python that is used for any new environment you create. However, you can specify any version of python installed on your computer to use inside a new environment with the -p flag : $ virtualenv -p python3. 2 my_env Running virtualenv with interpreter /usr/local/bin/python3.

Is virtualenv same as VENV?

These are almost completely interchangeable, the difference being that virtualenv supports older python versions and has a few more minor unique features, while venv is in the standard library.

Can you move a python VENV?

Yes. It is possible to move it on the same platform. You can use --relocatable on an existing environment.


2 Answers

By default virtualenv does not support the renaming of environments. It is safer to just delete the virtualenv directory and create a new one with the correct name. You can do this by:

  1. Activate your virtualenv: source vnev/bin/activate
  2. Create a requirements.txt of currently installed packages: pip freeze > requirements.txt
  3. Delete the misspelled virtualenv: rm -r vnev/
  4. Create a new virtualenv with correct name: virtualenv venv
  5. Activate new virtualenv: source venv/bin/activate
  6. Install packages from requirements.txt: pip install -r requirements.txt

If recreating is not an option there are 3rd party tools like virtualenv-mv that might be helpful.

Alternatively you can use virtualenvwrapper which provides the cpvirtualenv command to copy or rename virtualenvs.

like image 134
andrew Avatar answered Sep 30 '22 14:09

andrew


If you use virtualenvwrapper this can be done by:

$ cpvirtualenv <wrong_name> <correct_name> $ rmvirtualenv <wrong_name> 

Also, FYI, to rename a conda virtualenvironment, check out this question.

like image 26
farenorth Avatar answered Sep 30 '22 14:09

farenorth