Skip to content

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.

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”

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.


  1. 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)) --daemon

    El --daemon es crucial, ya que permite que Nix funcione en un sistema multiusuario como Fedora, ejecutándose como un servicio en segundo plano.

  2. 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.sh

    Recuerda reemplazar tu_usuario con tu nombre de usuario. Después de editar el archivo, recarga tu shell con source ~/.bashrc o source ~/.zshrc.


Crear y correr un entorno de Python con Nix-Shell

Section titled “Crear y correr un entorno de Python con Nix-Shell”
  1. Crear el archivo shell.nix: En la raíz de tu proyecto, crea un archivo llamado shell.nix. Este archivo es la “receta” que le dice a Nix qué herramientas y librerías necesitas.

    { pkgs ? import <nixpkgs> {} }:
    pkgs.mkShell {
    buildInputs = [
    pkgs.python311
    pkgs.python311Packages.pip
    pkgs.python311Packages.virtualenv
    ];
    }

    En este ejemplo, estamos pidiendo la versión 3.11 de Python, junto con pip y virtualenv para gestionar las dependencias del proyecto.

  2. 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-shell

    Nix 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.


  • 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.