Python de Cero a Pro - Cap.2 NixShell
Una guía detallada para la creación de entornos de desarrollo aislados y reproducibles con Nix-Shell en Fedora.
Síguenos en YouTube
Section titled “Síguenos en YouTube”Volver a Página Principal
Ver Codigo en GitLab
Módulo 2: Entornos de Desarrollo con Nix-Shell
Section titled “Módulo 2: Entornos de Desarrollo con Nix-Shell”¿Qué es Nix-Shell?
Section titled “¿Qué es Nix-Shell?”Nix-Shell es una herramienta del ecosistema Nix que te permite crear entornos de desarrollo aislados y reproducibles. Imagina que cada uno de tus proyectos de software puede tener su propia caja de herramientas, con las versiones exactas de software y librerías que necesita, sin que entren en conflicto con otros proyectos. Esto es exactamente lo que hace Nix-Shell.
Instalación y Configuración en Fedora
Section titled “Instalación y Configuración en Fedora”-
Instalar Nix en Fedora: Abre tu terminal y ejecuta el siguiente comando para instalar Nix. Este comando descarga y ejecuta un script de instalación que configura Nix en tu sistema.
Terminal window sh <(curl -L [https://nixos.org/nix/install](https://nixos.org/nix/install)) --daemonEl
--daemon
es crucial, ya que permite que Nix funcione en un sistema multiusuario como Fedora, ejecutándose como un servicio en segundo plano. -
Configurar tu shell: Para que tu terminal reconozca los comandos de Nix, necesitas añadirlo a tu PATH. El instalador te dará las instrucciones al final, pero generalmente se trata de añadir las siguientes líneas a tu archivo de configuración de shell (por ejemplo,
.bashrc
o.zshrc
).Terminal window . /home/tu_usuario/.nix-profile/etc/profile.d/nix.shRecuerda reemplazar
tu_usuario
con tu nombre de usuario. Después de editar el archivo, recarga tu shell consource ~/.bashrc
osource ~/.zshrc
.
Crear y correr un entorno de Python con Nix-Shell
Section titled “Crear y correr un entorno de Python con Nix-Shell”-
Crear el archivo
shell.nix
: En la raíz de tu proyecto, crea un archivo llamadoshell.nix
. Este archivo es la “receta” que le dice a Nix qué herramientas y librerías necesitas.{ pkgs ? import <nixpkgs> {} }:pkgs.mkShell {buildInputs = [pkgs.python311pkgs.python311Packages.pippkgs.python311Packages.virtualenv];}En este ejemplo, estamos pidiendo la versión 3.11 de Python, junto con
pip
yvirtualenv
para gestionar las dependencias del proyecto. -
Activar el entorno: Una vez que tengas tu archivo
shell.nix
, simplemente ejecuta el siguiente comando en la terminal desde el directorio de tu proyecto:Terminal window nix-shellNix descargará e instalará todas las dependencias especificadas en el archivo
shell.nix
en un entorno temporal. Una vez completado, verás que tu prompt de la terminal cambia, indicando que estás dentro del entorno Nix-Shell.Verifica que funciona: Puedes confirmar que estás usando la versión correcta de Python ejecutando:
Terminal window python --version¡Y listo! Ya tienes un entorno de desarrollo con Python 3.11 totalmente aislado y reproducible.
Referencias Complementarias
Section titled “Referencias Complementarias”- Documentación Oficial de Nix: La fuente principal para una guía completa sobre Nix y sus comandos, incluyendo Nix-Shell.
- Guía de Nix para Principiantes: Un recurso excelente para entender los conceptos básicos y comenzar a usar Nix-Shell de manera práctica.
- NixOS Wiki: Un wiki comunitario con una gran cantidad de ejemplos y casos de uso para Nix y Nix-Shell.
- QuePasaLinux: No olvides revisar mi canal para más contenido y tutoriales prácticos sobre estos temas.