Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

625
Vistas
exportar entorno conda sin variable de prefijo que muestra la ruta local al ejecutable

Para mejorar la reproducibilidad en mi equipo, he exportado un archivo de entorno conda en un repositorio recién creado que ejecuta conda env export > environment.yml .

La idea es que mis colegas descarguen el repositorio y ejecuten conda env create -f environment.yml y estén listos para usar el código.

Sin embargo, algunos de mis colegas me señalaron que al final del archivo yaml hay:

 - readline=7.0=hc1231fa_4 - requests=2.18.4=py35h0d65e6b_1 - setuptools=38.5.1=py35_0 - six=1.11.0=py35h39a4c60_1 - sqlite=3.22.0=h3efe00b_0 - tk=8.6.7=h35a86e2_3 - urllib3=1.22=py35he002d57_0 - wheel=0.30.0=py35h5c0b906_1 - xz=5.2.3=h0278029_2 - zlib=1.2.11=hf3cbc9b_2 prefix: </path/to/your/anaconda/distribution>/envs/<env-name>/bin

la última línea con la variable de prefix en realidad muestra el nombre de mi máquina y la ruta única a la instalación de miniconda.

Cuando mis colegas intentaron cargar el entorno, la secuencia de comandos realmente funcionó bien para ellos, lo que significa que conda básicamente ignora la variable de prefix .

Solía trabajar con virtualenvs y la idea de que mi ruta absoluta entra en un archivo que se supone que debe compartirse para hacer que las cosas sean reproducibles en diferentes máquinas realmente me confunde.

Entonces, mi pregunta es: ¿para qué se usa la variable de prefijo y hay alguna forma de exportar un archivo de entorno conda sin ella?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esta pregunta ya se abordó aquí , pero sin una explicación real sobre el papel del prefix . Al menos hay una solución para excluir la línea de prefijo mediante programación.

No se menciona en el documento de conda , excepto por el hecho de que conda env export --prefix PATH permite especificar un prefijo. Pero tenga en cuenta que las opciones --name y --prefix son exclusivas aquí.

Si observa el código de conda , verá que conda create se refiere a cli_install.check_prefix() . Y ese install.py parece indicar que hay una verificación de seguridad en el nombre del entorno (extraído del prefix ) y en la ruta completa del prefix para garantizar que no exista ningún entorno con el mismo nombre o ruta.

de conda/cli/install.py

 def check_prefix(prefix, json=False): name = basename(prefix) error = None if name == ROOT_ENV_NAME: error = "'%s' is a reserved environment name" % name if exists(prefix): if isdir(prefix) and 'conda-meta' not in os.listdir(prefix): return None error = "prefix already exists: %s" % prefix if error: raise CondaValueError(error, json) if ' ' in prefix: stderrlog.warn("WARNING: A space was detected in your requested environment path\n" "'%s'\n" "Spaces in paths can sometimes be problematic." % prefix)

Supongo que este prefix en environment.yaml es parte de una estrategia compleja para garantizar que conda sepa dónde crear el entorno. Pero parece que es inútil en la mayoría de los casos, y probablemente su presencia solo se deba al vínculo mecánico entre --name y --prefix .

de conda.base.context.py Contexto()

 # This block of code sets CONDA_PREFIX based on '-n' and '-p' flags, so that # configuration can be properly loaded from those locations

EDITAR:

El hecho de que el prefix ni siquiera se mencione en la sección " crear un archivo de entorno manualmente " del documento conda es reconfortante con la idea de que esta línea es inútil ...

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda