Cómo duplicar virtualenv

Tengo un entorno existente en virtualenv, con muchos paquetes, pero una versión anterior de Django.

¿Qué pasa si quiero duplicar este entorno,
para que pueda tener otro entorno en el que pueda instalar una versión más nueva de Django,
¿Pero manteniendo todos los paquetes que ya están en el otro entorno?

La forma más fácil es usar pip para generar un archivo de requisitos. Un archivo de requisitos es básicamente un archivo que contiene una lista de todos los paquetes de Python que desea instalar (o ya ha instalado en el caso de un archivo generado por pip) y en qué versiones se encuentran.

Para generar un archivo de requisitos, vaya a su virtualenv original y ejecute:

 pip freeze > requirements.txt 

Esto generará el archivo Requirements.txt para usted. Si abres ese archivo en tu editor de texto favorito, verás algo como:

 Django==1.3 Fabric==1.0.1 etc... 

Ahora, edite la línea que dice Django==xx para decir Django==1.3 (o la versión que desee instalar en su nuevo virtualenv).

Por último, active su nuevo virtualenv, y ejecute:

 pip install -r requirements.txt 

¡Y pip descargará e instalará automáticamente todos los módulos de Python listados en el archivo Requirements.txt, en las versiones que especifique!

Otra opción es usar el paquete virtualenv-clone :

Un script para clonar un virtualenv no reubicable.

virtualenvwrapper proporciona un comando para duplicar virtualenv

 cpvirtualenv ENVNAME [TARGETENVNAME] 

Si está utilizando Anaconda , simplemente puede ejecutar:

 conda create --name myclone --clone myenv 

Esto copiará myenv al entorno creado recientemente llamado myclone .

¿No puedes simplemente:

  • Copie el directorio virtual env existente a uno nuevo
  • ¿Actualizar al nuevo Django?