¿Es posible copiar módulos de Python de un virtualenv a otro? En caso afirmativo, ¿cómo se hace?cómo copiar módulos de un virtualenv a otro
Respuesta
Normalmente puede copiar el .egg-info de la carpeta lib/site-packages de virtualenv a lib/site-packages del otro entorno.
Mientras que los está moviéndose de un virtualenv a otro en la misma máquina , fácilmente se podría simplemente hacer:
$ cp -r [env1]/lib/pythonX.X/site-packages/* [env2]/lib/pythonX.X/site-packages/
Sin embargo, si los ambientes son en diferentes máquinas o utilizando diferentes versiones de pitón o alguna otra diferencia importante, probablemente no sea una buena idea. En general, es mucho más seguro generar un requirements.txt
y luego usarlo para cargar todos los mismos módulos en el otro entorno. Puede crear el archivo manualmente si lo desea, pero es más fácil simplemente usar pip
.
$ pip freeze -E [env1] > requirements.txt
O, si su virtualenv se activa ya, sólo tiene que hacer:
$ pip freeze > requirements.txt
Luego, en el otro ambiente, que puede hacer:
$ pip install -E [env2] -r /path/to/requirements.txt
estoy trabajando en una máquina de 64 bits con Ubuntu-14.04-64. Recopilé e instalé python-3.4.3 a /opt/python3.4/ y creé un vitualenv basado en este pitón.
mkvirtualenv -p /opt/python3.4/bin/python venv1
también para facilidad:
sudo apt-get install virtualenvwrapper
Con la Venv instalado y funcionando con éxito PyQt5 (el bit dura) más numpy, scipy, etc. ipython He instalado virtualenv-clon:
workon myvenv
pip install virtual-clone
deactivate
y luego corrieron:
virtualenv-clone venv1 venv2
PyQt5 funciona de esta manera. El indicador de línea de comandos todavía nombres venv1 tan activo pero dentro ~/.virtualenv/venv2
cat activate* | grep "venv1"
muestra 3 entradas dentro de los tres archivos activan, activate.csh y Activar. peces
En desactivar, cambiar
if [ "x(myvenv1) " != x ] ; then
PS1="(myvenv1) $PS1"
else
a
...
PS1="(myvenv2) $PS1"
...
En Activar.CSH cambio
if ("venv1" != "") then
set env_name = "venv1"
else
a
...
set env_name = "venv2"
...
En activate.fish cambio
if test -n "(venv1) "
printf "%s%s%s" "(venv1) " (set_color normal) (_old_fish_prompt)
return
end
a
...
printf "%s%s%s" "(venv2) " (set_color normal) (_old_fish_prompt)
...
Ahora, cuando source ~/.virtualenv/venv2/bin/activate
o workon venv2
el símbolo del sistema mostrará correctamente su entorno (la copia clonada de venv1).
Editar: esto no responde a la pregunta "Cómo copiar los módulos de uno a otro virtualenv", pero estoy bastante seguro de que el resultado es en muchos casos la deseada, a saber, la creación de una nueva basada Venv en uno previamente creado que incluye (todos) los módulos previamente instalados.
parece que no podemos simplemente copiar un virtualenv como otro. , incluso si domina el $ VIRTUAL_ENV en el archivo de activación, todavía actúa como en el origen virtualenv y pip instalará todos los paquetes en el sitio de origen-packages/
- 1. Cómo copiar de un lienzo a otro
- 2. Copiar de un registro a otro
- 3. ¿Puede un virtualenv heredar de otro?
- 4. R: copiar/mover un entorno a otro
- 5. ¿Cómo copiar mis archivos de un directorio a otro?
- 6. ¿Cómo copiar propiedades de un bean Java a otro?
- 7. ¿Cómo copiar un PNG desde otro PNG?
- 8. Copiar parámetros de DbCommand a otro DbCommand
- 9. ¿Copiar objetivos de un proyecto de Xcode a otro?
- 10. Copiar contenidos de un cuadro de texto a otro
- 11. TFS "Copiar" el valor de un campo a otro
- 12. ¿Puedo copiar .git a otro directorio?
- 13. ¿Cómo puedo copiar los artefactos de Teamcity a otro servidor?
- 14. Copiar objeto en otro
- 15. ¿Cómo copiar recursos de otro módulo a una ubicación específica? (maven)
- 16. ¿Cómo puedo copiar un mapa en otro usando std :: copy?
- 17. Lua equivalente de virtualenv?
- 18. ¿Cómo puedo copiar un directorio de un repositorio git a otro, preservando el historial?
- 19. Cómo copiar un paquete de Monticello a otro repositorio bajo un nombre diferente con Gofer
- 20. cómo copiar de un objeto de cadena de caracteres a otro en C++?
- 21. Cómo puedo copiar mediante programación todos los atributos de estilo de un elemento DOM a otro
- 22. Cómo copiar y pegar archivos en Fuentes de compilación de un destino a otro?
- 23. VBA - ¿Cómo copiar una fila en Excel de un libro de trabajo a otro?
- 24. SQL Server 2005, cómo copiar un Diagrama de base de datos a otro servidor
- 25. Copiar std :: mapa de datos a otro mapa
- 26. Copiando archivo de un proyecto a otro en maven
- 27. ¿Cómo elimino/elimino un virtualenv?
- 28. ¿Cómo migrar de virtualenv a buildout?
- 29. ¿Cómo puedo usar la función splice() de Linux para copiar un archivo a otro archivo?
- 30. Xcode - ¿Cómo podría copiar clases/archivos pegados de un proyecto a otro?
algo va mal si intento copiar * un paquete como ¿esta? – Claudiu
El problema no está en la * cantidad * de paquetes copiados, sino en cualquier diferencia en las versiones de Python, arquitecturas de sistema, etc., entre el origen y el destino. Si el origen y el destino están en la misma máquina, deberías estar bien; si están en máquinas diferentes, debes usar 'pip freeze'. –