How to rename a virtualenv in Python?

前端 未结 4 1506
轻奢々
轻奢々 2020-12-07 10:48

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

$ virtualenv vnev

I actually intended to create the envir

相关标签:
4条回答
  • 2020-12-07 11:25

    My answer is similar to creating a new virtual environment with the dependencies of the old one, but this one is succinct.

    1. Clone the old environment (say venv_1) to a new environment (say venv_2) using conda.

      conda create -n venv_2 --clone venv_1

    This creates a new environment venv_2 cloning the venv_1. Hence no separate task of getting the packages/ dependencies. Single step suffices.

    1. Delete the old virtual environment. [This step is optional if you still want to keep the old environment]

      rm -rf "fully qualified path of the old virtual environment"

    So in 1/2 steps the task can be achieved.

    0 讨论(0)
  • 2020-12-07 11:28

    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.

    0 讨论(0)
  • 2020-12-07 11:31

    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.

    0 讨论(0)
  • 2020-12-07 11:42

    In windows I was able to easily rename my virtual environment by editing activate.bat inside scripts\:

    1. Backup the original activate.bat (I copy&pasted then renamed mine BACKUP_activate.bat).

    2. Right-click and edit activate.bat.

    3. Change VIRTUAL_ENV variable from:

       set VIRTUAL_ENV=C:\some_dir\old_venv_name
      

      into

       set VIRTUAL_ENV=C:\some_dir\new_venv_name
      
    4. Change PROMPT variable from:

       set PROMPT=(old_venv_name) %PROMPT%
      

      into

       set PROMPT=(new_venv_name) %PROMPT%
      
    5. Save the edited batch file

    NOTE: My solution should work and save windows users setting up new virtual environments, I have no knowledge scripting or whatsoever in linux or other operating systems

    0 讨论(0)
提交回复
热议问题