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?
Solution 1:
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:
- Activate your virtualenv:
source vnev/bin/activate
- Create a requirements.txt of currently installed packages:
pip freeze > requirements.txt
- Delete the misspelled virtualenv:
rm -r vnev/
- Create a new virtualenv with correct name:
virtualenv venv
- Activate new virtualenv:
source venv/bin/activate
- 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.
Solution 2:
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.