Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

844
Views
¿Cómo puedo cambiar el nombre de un entorno conda?

Tengo un entorno conda llamado old_name , ¿cómo puedo cambiar su nombre a new_name sin romper las referencias?

over 4 years ago · Santiago Trujillo
7 answers
Answer question

0

Como la respuesta de @pkowalczyk mencionó algunos inconvenientes: en mi humilde opinión, la forma indolora y sin riesgos (solución alternativa) es seguir estos pasos:

  1. Active y exporte su entorno actual conda env export > environment.yml
  2. Desactivar el entorno actual de conda. Modifique el archivo environment.yml y cambie el nombre del entorno como desee (generalmente está en la primera línea del archivo yaml )
  3. Cree un nuevo entorno conda ejecutando este conda env create -f environment.yml

Este proceso lleva un par de minutos y ahora puede eliminar el entorno antiguo de forma segura.

PS casi 5 años y conda todavía no tiene su funcionalidad de "cambio de nombre".

over 4 years ago · Santiago Trujillo Report

0

Puede cambiar el nombre de su Conda env simplemente cambiando el nombre de la carpeta env. Aquí está la prueba:

Cambio de nombre de Conda env

Puede encontrar su carpeta Conda env dentro de C:\ProgramData\Anaconda3\envs o puede ingresar a conda env list para ver la lista de conda envs y su ubicación.

over 4 years ago · Santiago Trujillo Report

0

conda debería habernos dado una herramienta simple como cond env rename <old> <new> pero no lo ha hecho. Simplemente cambiar el nombre del directorio, como en esta respuesta anterior , por supuesto, rompe los hashbangs codificados (¡#!). Por lo tanto, necesitamos ir un nivel más profundo para lograr lo que queremos.

 conda env list # conda environments: # base * /home/tgowda/miniconda3 junkdetect /home/tgowda/miniconda3/envs/junkdetect rtg /home/tgowda/miniconda3/envs/rtg

Aquí estoy tratando de cambiar el nombre de rtg -> unsup (tenga paciencia con esos nombres, este es mi caso de uso real)

 $ cd /home/tgowda/miniconda3/envs $ OLD=rtg $ NEW=unsup $ mv $OLD $NEW # rename dir $ conda env list # conda environments: # base * /home/tgowda/miniconda3 junkdetect /home/tgowda/miniconda3/envs/junkdetect unsup /home/tgowda/miniconda3/envs/unsup $ conda activate $NEW $ which python /home/tgowda/miniconda3/envs/unsup/bin/python

la respuesta anterior informó hasta esto, pero espera, ¡aún no hemos terminado! la tarea pendiente es $NEW/bin dir tiene un montón de scripts ejecutables con hashbangs ( #! ) que apuntan a las rutas de acceso $OLD OLD.

Ver jupyter , por ejemplo:

 $ which jupyter /home/tgowda/miniconda3/envs/unsup/bin/jupyter $ head -1 $(which jupyter) # its hashbang is still looking at old #!/home/tgowda/miniconda3/envs/rtg/bin/python

Entonces, podemos arreglarlo fácilmente con un sed

 $ sed -i.bak "s:envs/$OLD/bin:envs/$NEW/bin:" $NEW/bin/* # `-i.bak` created backups, to be safe $ head -1 $(which jupyter) # check if updated #!/home/tgowda/miniconda3/envs/unsup/bin/python $ jupyter --version # check if it works jupyter core : 4.6.3 jupyter-notebook : 6.0.3 $ rm $NEW/bin/*.bak # remove backups

Ahora hemos terminado 💯

Creo que debería ser trivial escribir un script portátil para hacer todo eso y vincularlo a conda env rename old new .


Probé esto en ubuntu. Por cualquier razón imprevista, si las cosas se rompen y desea revertir los cambios anteriores:

 $ mv $NEW $OLD $ sed -i.bak "s:envs/$NEW/bin:envs/$OLD/bin:" $OLD/bin/*
over 4 years ago · Santiago Trujillo Report

0

Estoy usando Conda en Windows y esta respuesta no me funcionó. Pero puedo sugerir otra solución:

  • cambiar el nombre de la carpeta del entorno ( old_name a new_name )

  • abra shell y active env con carpeta personalizada:

    conda.bat activate "C:\Users\USER_NAME\Miniconda3\envs\new_name"

  • ahora puede usar este entorno, pero no está en la lista de entornos. Actualice\instale\elimine cualquier paquete para solucionarlo. Por ejemplo, actualice numpy:

    conda update numpy

  • después de aplicar cualquier acción al paquete, el entorno se mostrará en la lista de env. Para comprobar esto, escriba:

    conda env list

over 4 years ago · Santiago Trujillo Report

0

conda create --name new_name --copy --clone old_name es mejor

Uso conda create --name new_name --clone old_name que no tiene --copy pero encontré pip breaks...

la siguiente URL puede ayudar La instalación de tensorflow en el entorno de conda clonado rompe el entorno de conda del que fue clonado

over 4 years ago · Santiago Trujillo Report

0

no puedes

Una solución alternativa es crear un clon de un nuevo entorno y luego eliminar el original.

Primero, recuerda desactivar tu entorno actual. Puedes hacer esto con los comandos:

  • deactivate en Windows o
  • source deactivate en macOS/Linux.

Luego:

 conda create --name new_name --clone old_name conda remove --name old_name --all # or its alias: `conda env remove --name old_name`

Tenga en cuenta que hay varios inconvenientes de este método:

  1. Vuelve a descargar paquetes (puede usar el indicador --offline para deshabilitarlo)
  2. Tiempo consumido en la copia de archivos del entorno.
  3. Uso temporal de doble disco

Hay un problema abierto que solicita esta función.

over 4 years ago · Santiago Trujillo Report

0

Basado en el útil comentario de dwanderson , pude hacer esto en una sola línea de Bash:

 conda create --name envpython2 --file <(conda list -n env1 -e )

Mi env mal llamado era "env1" y el nuevo que deseo clonar es "envpython2".

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!