HERNAN DARIO VELASQUEZ ORTIZ
Hizo falta un poco mas de este tema!
Andrés Mauricio Martínez Lopez
Además en el 1:26 pasó una mosca
Amilcar Noé Cuyuch Palacios
Completamente de acuerdo. Me hubiera gustado ver un ejemplo práctico sobre esto unu
¿Cómo aplicar el algoritmo de Divide y Vencerás en ambientes virtuales?
El manejo de ambientes virtuales en proyectos grandes puede convertirse en un desafío titánico. Optar por el algoritmo de "Divide y Vencerás" puede ser la clave para gestionar estos ambientes de manera eficiente. Este enfoque permite dividir un problema complejo en partes más pequeñas y manejables. Aquí descubrirás cómo colocar esta estrategia en práctica al trabajar con ambientes virtuales, ahorrándote horas de posibles complicaciones.
¿Qué es el algoritmo de Divide y Vencerás?
El algoritmo de Divide y Vencerás se refiere a un método que resuelve problemas complejos descomponiéndolos en subproblemas más pequeños, fáciles de resolver por separado. Una vez solucionadas las partes individuales, se combinan para resolver el problema original. Aplicado a los ambientes virtuales, significa crear ambientes más pequeños y específicos dentro de un gran entorno de desarrollo.
¿Por qué dividir un ambiente virtual?
Los ambientes virtuales permiten mantener proyectos independientes y evitar que cambios en uno afecten negativamente a otros. Sin embargo, en un ambiente gigantesco con miles de dependencias, una simple actualización podría causar inestabilidad en el proyecto. Aquí es donde la división se vuelve crucial:
¿Cómo implementar esta estrategia en Conda?
Para aplicar esta técnica en Conda, sigue estos pasos clave:
environment.yml, crea una nueva carpeta ambientes y subdivide en archivos específicos para cada necesidad (por ejemplo, external.yml, model.yml y communication.yml).Este enfoque te permitirá actualizar sólo el ambiente de interés sin afectar el resto del proyecto.
¿Qué herramienta complementa este enfoque?
Una herramienta que complementa perfectamente este método es Snakemake. Es un motor de flujo de trabajo que permite definir etapas del proyecto en Python, ejecutándolas en ambientes especializados automáticamente. Por ejemplo, cada paso en tu flujo de trabajo podría gestionarse por diferente ambiente asegurando que cada etapa se mantenga limpia y funcional.
¿Qué ventajas ofrece Snakemake?
¿Dónde aprender más sobre Snakemake?
Aunque el alcance detallado de Snakemake excede este contenido, puedes consultar la sección de enlaces recomendados para ampliar tu conocimiento y descubrir cómo integrar esta poderosa herramienta en tus proyectos de datos.
¡Continúa explorando y aprendiendo! El mundo de los datos está lleno de oportunidades y herramientas para optimizar tu trabajo diario.
HERNAN DARIO VELASQUEZ ORTIZ
Hizo falta un poco mas de este tema!
Andrés Mauricio Martínez Lopez
Además en el 1:26 pasó una mosca
Amilcar Noé Cuyuch Palacios
Completamente de acuerdo. Me hubiera gustado ver un ejemplo práctico sobre esto unu
SANTIAGO VELASQUEZ VARGAS
Me gustaría que primero se diera el curso de la terminal y luego este en la escuela de Data Science, para no estar tan loco con la terminal y sus términos.
Javier Maximiliano Lopez Ramirez
Sí, me paso lo mismo, estaba medio perdido y me consumió mucho tiempo entender al principio. Espero que después el curso de la terminal se me haga super fácil.
Ivan Alberto Diaz Rivera
Concuerdo completamente, muy confuso de momento todo.
Axel Yaguana
Team PlatziSi desean saber más sobre el divide y vencerás, pueden ir al curso de Configuración Profesional de Entorno de Trabajo para Ciencia de Datos, específicamente a esta clase.
Darwin Josué Flores López
gracias por el dato
Oskar Guzmán
Gracias
Julian Muñoz
¡Súper este bonus!! De verdad que lo más importante es dividir tú proyectos por ambientes, para que así las dependencias puedan tener sus actualizaciones sin afectar a las otras! Esto es un superbonus! Muchas gracias profe Jesús. :)
Pascal Salvador Miranda Valdés
Lectura recomendada
Saludos comunidad, les comparto esta lectura sobre Snakemake: https://f1000research.com/articles/10-33/v1 Si en esta clase acaban de enterarse de la existencia de Snakemake (como yo) les recomiendo que le echen una hojeada al articulo y lo guarden para una posterior lectura profunda. Como no sabemos mucho de Snakemake aun, nos perderemos del 80% del contenido del articulo leyendolo de principio a fin. Pero nos beneficiara leerlo por completo mas adelante.
Del articulo:
This makes Snakemake one of the most widely used workflow management systems in science.
KAREN PAOLA JURADO FLOREZ
Luis Alberto Ramírez Castellanos
Esta tecnica de divide y venceras yo la aplico en muchas otras areas, como en el estudio, donde todos los dias trato de estudiar asi sean pequeñas capsulas, que van sumando dia tras dia, y asi en unas semanas, y meses logro completar muchos cursos y rutas de aprendizajes, la clave es la constancia.
DAVID EDUARDO BAEZ SANCHEZ
Muy interesante. Creo que le falto trabajar más este concepto que es básico.
Didacio Saturno
En el terminal si a alguien no los deja instalar mamba porque les sale este mensaje al final "EnvironmentNotWritableError: The current user does not have write permissions to the target environment." Lo que me resolvió fue cerrar el terminal y volver a ejecutarlo como administrador, en mi caso estaba usando el terminal de Anaconda.
Guillermo Camacho
Hola @Didacio creo que me ocurrió lo mismo, se me quedó instalando mamba pero no termino nunca, se quedaba en el proceso, Cómo instalaste la terminal de anaconda, de donde la descargaste, me podrías pasar las instrucciones o el link?
Miguel Angel Reyes Moreno
Puedes crear varios ambientes virtuales por proyecto:
Documentación oficial de Snakemake
Alvaro Franco
¡Hola!
Una vez creados los tres ambientes, external.yml, model.yml y comunicacion.yml; ¿cómo se integran los tres ambientes trabajar con un solo proyecto?
Por ejemplo, ¿como trabajar si se tiene un script que usa un códulo del ambiente external.yml y otro módulo de model.yml?
Hugo Gomez Tinoco
tengo la misma duda
Alvaro Franco
¡Hola de nuevo! Dejo este tutorial sobre el uso de snakemakes, que sirve para responder esta pregunta.
¡Saludos!
Juan Carlos Cardenas
Con sinceridad, esta ultima parte del curso se me hizo pesado, engorroso y poco practico, si fuera un newbie que esta empezando este mundo de la ciencia de datos, lo ultimo que quisiera es que me vengan a confundir con tecnisismos de "ambientes virtuales" son conceptos muy abstractos, utiles a futuro tal vez, pero que solo hacen que uno se pierda y se confunda, en este caso le tengo que dar manita abajo a la estructura del curso, pienso que como sugerencia esta ultima parte deberia ir en otro curso aparte
Gersom Emmanuel Rojas Curiel
Pienso lo mismo, desde que comenzó el tema de ANACONDA, e perdí por completo. Preferí no instalarlo, y una vez que avance en mi aprendizaje y sea necesario, volveré a tomar las clases de este curso.
Iván Ozono
En proyectos grandes de ciencia de datos, puede ser complicado mantener un ambiente virtual debido a la gran cantidad de paquetes y dependencias. Una solución a este problema es dividir el proyecto en partes más pequeñas y desarrollar cada paquete a su propio ritmo sin preocuparse por la compatibilidad con otros módulos. Esto se puede lograr creando múltiples ambientes virtuales en un solo proyecto utilizando una estructura de carpetas como la de envs, que contiene tres archivos YML para paquetes externos, modelos y de comunicación.
Para implementar este enfoque, se debe crear una carpeta llamada envs y dentro de ella crear los archivos Y√ML para los tres tipos de paquetes. Para cada paquete, se especifican las versiones de los paquetes y dependencias necesarias. Además, se utiliza Snakemake, un motor de workflows, que permite ejecutar cada paso del proyecto con un ambiente virtual específico.
La ventaja de este enfoque es que permite mantener cada paquete en su propio ambiente virtual, lo que facilita la gestión de dependencias y evita conflictos entre paquetes. Además, la estructura de carpetas envs permite tener múltiples ambientes virtuales en un solo proyecto. Sin embargo, la creación y gestión de múltiples ambientes virtuales puede ser compleja y requiere un mayor esfuerzo de desarrollo.
Adonai Callejas
viendo el tema y comparando con lo visto anteriormente... faltó mas detalle en esta parte y parece algo muy útil!
Francisco Marín
No sé si seré capaz de finalizar este curso: Sufro de ofidiofobia.
Carlos Rodríguez
:o.
Ricardo Gomez
Muy buen consejo, lo que planteas, mas no seria mejor ejecutarlo en colab o deepnote por lo grande de un proyecto, o en alguna solucion como AWS, GCP o Azure
Carlos Rodríguez
Sí señor.
Raul de Jesus Granados Rodriguez
Alguien sabe o conoce si esto se puede aplicar dentro de contenedores de docker ?
Carlos Hernández
Compañeros, alguno de ustedes sabe como puedo solucionar este error:
(base) vdf@DESKTOP-S9GR4QA:~$ mamba env create --file environment.yml
CondaValueError: prefix already exists: /home/vdf/anaconda3
Luis Xaramillo
Hola, en el archivo environment.yml viene el nombre del entorno que intentas crear con el comando.
Me parece que si ya ejecutaste ese comando antes, entonces tu entorno virtual ya está creado.
para activar ese entorno usa
conda activate _el_nombre_del_ambiente_