Tengo un virtualenv existente con muchos paquetes pero una versión antigua de Django.
Lo que quiero hacer es duplicar este entorno, así que tengo otro entorno con exactamente los mismos paquetes pero una versión más nueva de Django. ¿Cómo puedo hacer esto?
python
django
virtualenv
dolma33
fuente
fuente
virtualenv -p /path/to/older/venv/bin/python new_venv
y luego usar elrequirements.txt
que generó despuéspip freeze
Respuestas:
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 que ya ha instalado en caso de archivo generado por pip), y en qué versiones están.
Para generar un archivo de requisitos, vaya a su virtualenv original y ejecute:
Esto generará el requirements.txt archivo para usted. Si abre ese archivo en su editor de texto favorito, verá algo como:
Ahora, edite la línea que dice
Django==x.x
decirDjango==1.3
(o cualquier versión que desee instalar en su nuevo virtualenv).Por último, active su nuevo virtualenv y ejecute:
Y PIP se descargará e instalará automáticamente todos los módulos de Python que figuran en su requirements.txt archivo, a cualquier versiones que ha especificado!
fuente
Could not find a version that satisfies the requirement a_package=#.#.#
¿Puedo resolverlo fácilmente? Eliminé una línea o cambié la igualdad a la desigualdad.pyenv
también. Impresionante respuesta.Otra opción es usar el
virtualenv-clone
paquete:fuente
virtualenv-clone
después de activar virtualenvvirtualenvwrapper
proporciona un comando para duplicar virtualenvfuente
Si está utilizando Anaconda , puede ejecutar:
Esto se copiará
myenv
en el entorno recién creado llamadomyclone
.fuente
La opción más fácil es usar el
virtualenv-clone
paquete.Para duplicar
venv1
avenv2
, siga estos pasos:Instalar
virtualenv-clone
envenv1
un entorno virtual ficticio o en unovenv_dummy
. Para crearvenv_dummy
:Para instalar
virtualenv-clone
:Para duplicar
venv1
avenv2
:fuente
bin/activate
si sigue esta respuesta. ¿Por qué tienes que editarbin/activate
?bin/activate
¿No puedes simplemente:
fuente