No se puede clonar Python venv en otra PC
Quiero clonar mi venv existente en otra PC, pero simplemente copiar y pegar no funciona. Cuando copio el venv y lo pego en la segunda máquina y ejecuto
lista de pips
Solo enumera pip y setup_tools como las dependencias instaladas. Intenté otra forma de clonar los paquetes. Creé un nuevo venv en la segunda máquina y copié todo el archivo del primer venv en ese nuevo venv omitiendo los archivos existentes con el mismo nombre en el nuevo venv. Ahora, cuando corro
lista de pips
Muestra todas las dependencias pero, cuando intento iniciar el cuaderno jupyter como
cuaderno jupyter
Da el siguiente error.
Error fatal en el lanzador: No se puede crear el proceso usando '"f: \ ruta \ a \ first_venv \ on_first_machine \ scripts \ python.exe" "C: \ ruta \ a \ new_venv \ on_the_second_machine \ Scripts \ jupyter.exe" notebook': El sistema no puede encontrar el archivo especificado.
No sé hacer que las cosas funcionen. ¡Por favor ayuda!
Editar
El problema es que no tengo conexión a Internet en la segunda máquina. En realidad, es una máquina remota con algunos protocolos de seguridad aplicados y no tener conexión a Internet es parte de la seguridad. Culpa mía :'(
Respuestas
No puede copiar y pegar venvs de una máquina a otra ya que los scripts en ellos pueden referirse a ubicaciones del sistema. (Lo mismo significa intentar mover venvs dentro de una máquina).
En su lugar, vuelva a crear el entorno en la nueva máquina:
- En la máquina antigua, ejecute
pip freeze -l > packages.txtvirtualenv. - Pase
packages.txta la nueva máquina. - Cree un nuevo virtualenv en la nueva máquina e ingréselo.
- Instalar los paquetes desde el archivo txt:
pip install -r packages.txt.
EDITAR: Si no tiene acceso a Internet en la segunda máquina, puede continuar desde el paso 2 con:
- Ejecute
pip wheel -w wheels -r packages.txtel venv en la primera máquina. Esto descargará y creará*.whlpaquetes para todos los paquetes que necesite. Tenga en cuenta que esto asume que ambas máquinas son similares en sistema operativo y arquitectura. - Copie los archivos de la rueda en la nueva máquina.
- Cree un nuevo virtualenv en la nueva máquina e ingréselo.
- Instalar los paquetes de ruedas en el nuevo virtualenv:
pip install *.whl.
Nunca debe copiar un entorno virtual entre máquinas. La forma correcta es exportar las dependencias instaladas en el entorno utilizando pip freezey crear un nuevo entorno virtual en la otra máquina.
# One the first machine
pip freeze > requirements.txt
# Copy requirements.txt to the other machine, or store in a source repository
# Then install the requirements in the new virtual environment
pip install -r requirements.txt