Replicar en W11 un entorno python de Ubuntu


En efecto es posible replicar en Windows 11 un entorno Python de Ubuntu como por ejemplo toda la Instalación de NILMTK o incluso NILMTK_CONTRIB

Para replicar tu instalación de NILMTK de Ubuntu en Windows 11 utilizando el Subsistema de Windows para Linux (WSL), sin Conda pero con Jupyter Notebook, y ya disponiendo del fichero requirements.txt y las carpetas nilmtknilm_metadata y nilmtk-contrib, puedes seguir estos pasos:

1. Preparar el Entorno WSL

Asegúrate de que tu distribución de Linux en WSL (por ejemplo, Ubuntu) tenga Python 3.6+ y pip instalados. NILMTK requiere Python 3.6 o superior.

  • Puedes verificar las versiones con python3 --version y pip3 --version.
  • Si es necesario, instálalos o actualízalos. Para Ubuntu en WSL, puedes usar:bashsudo apt update sudo apt install python3 python3-pip

2. Instalar Jupyter Notebook en WSL

Instala Jupyter Notebook usando pip en tu terminal WSL:

  • Ejecuta el comando:bashpip3 install jupyter Esto instalará Jupyter en tu espacio de usuario5.
  • Es posible que necesites añadir ~/.local/bin a tu variable de entorno PATH si los comandos de Jupyter no se encuentran. Edita tu archivo ~/.bashrc (o ~/.zshrc si usas Zsh) y añade la siguiente línea:bashexport PATH="$HOME/.local/bin:$PATH" Luego, aplica los cambios con source ~/.bashrc (o source ~/.zshrc)4.

3. Configurar las Carpetas y Dependencias de NILMTK

Copiar carpetas:
Transfiere tus carpetas nilmtknilm_metadata y nilmtk-contrib a un directorio de proyecto adecuado dentro del sistema de archivos de WSL (por ejemplo, ~/mi_proyecto_nilmtk/).

Instalar dependencias desde requirements.txt:
Navega en la terminal WSL al directorio donde se encuentra tu archivo requirements.txt (probablemente dentro de ~/mi_proyecto_nilmtk/). Luego, instala las dependencias:

bashcd ~/mi_proyecto_nilmtk
pip3 install -r requirements.txt

Si encuentras errores relacionados con la compilación de paquetes, es posible que necesites instalar herramientas de compilación. En Ubuntu WSL, esto se puede hacer con: sudo apt install build-essential.

Instalar nilm_metadata y nilmtk en modo desarrollo:
Esto permite que Python encuentre los paquetes en las carpetas que has copiado.

  • Para nilm_metadata (asumiendo que «nilmk-metadata» es un error tipográfico):bashcd ~/mi_proyecto_nilmtk/nilm_metadata # Ajusta la ruta si es diferente python3 setup.py develop
  • Para nilmtk:bashcd ~/mi_proyecto_nilmtk/nilmtk # Ajusta la ruta si es diferente python3 setup.py develop La instalación en modo desarrollo (develop) es útil para asegurar que los cambios en el código fuente se reflejen inmediatamente sin necesidad de reinstalar2.

Carpeta nilmtk-contrib:
El manejo de la carpeta nilmtk-contrib dependerá de su contenido. Si contiene paquetes Python adicionales con sus propios archivos setup.py, podrías necesitar instalarlos de manera similar. Si son datos o scripts, asegúrate de que estén en una ubicación accesible para tu proyecto.

4. Ejecutar Jupyter Notebook desde WSL

Navega en tu terminal WSL al directorio de tu proyecto (donde deseas que Jupyter Notebook acceda a los archivos y donde se guardarán los nuevos notebooks), por ejemplo, ~/mi_proyecto_nilmtk/.

  • Inicia Jupyter Notebook con el siguiente comando:bashjupyter notebook --no-browser La opción --no-browser evita que WSL intente abrir un navegador en el entorno Linux, lo cual generalmente no es deseado46.
  • La terminal mostrará un mensaje con una o más URLs, usualmente comenzando con http://localhost:8888/ e incluyendo un token de seguridad46. Copia una de estas URLs completas.
  • Abre un navegador web en Windows 11 (como Edge, Chrome o Firefox) y pega la URL copiada en la barra de direcciones.

5. Verificar la Instalación de NILMTK

Dentro de la interfaz de Jupyter Notebook en tu navegador:

  • Crea un nuevo notebook de Python 3.
  • En una celda de código, ejecuta:pythonimport nilmtk print(nilmtk.__version__)
  • Si no aparecen errores y se muestra la versión de NILMTK, la instalación se ha replicado correctamente y NILMTK está listo para usarse1.

Siguiendo estos pasos, deberías poder replicar tu entorno NILMTK en WSL en Windows 11, utilizando tus archivos y carpetas existentes y cumpliendo con tus requisitos de no usar Conda y sí Jupyter Notebook.

error

A veces a pesar de todo y seguir al pie de las letra los manuales no salen bien las cosas, A continuación algunos de los errores que podemos tener en la instalación:

Error externally-managed-environment

El error error: externally-managed-environment que estás viendo indica que tu sistema Linux (dentro de WSL) gestiona los paquetes de Python a través de su propio administrador de paquetes (como apt en Ubuntu/Debian) para evitar conflictos y asegurar la estabilidad del sistema 145. Por lo tanto, pip no te permite instalar paquetes globalmente por defecto.

La forma recomendada y más segura de proceder es crear un entorno virtual. Esto aislará tu proyecto de NILMTK y sus dependencias, incluyendo Jupyter, del Python del sistema 45.

Aquí te explico cómo continuar:

METODO 1

1. Crear y Activar un Entorno Virtual en WSL

En tu terminal WSL, antes de intentar instalar Jupyter o cualquier otro paquete con pip, crea un entorno virtual. Es una buena práctica hacerlo dentro de tu directorio de proyecto.

  • Navega a tu directorio de proyecto (donde tienes las carpetas nilmtknilm_metadatanilmtk-contrib y tu requirements.txt):bashcd ~/mi_proyecto_nilmtk # O la ruta donde hayas puesto tus archivos
  • Crea el entorno virtual (puedes llamarlo venv_nilmtk o como prefieras):bashpython3 -m venv venv_nilmtk Es posible que necesites instalar primero el paquete python3-venv si no está disponible: sudo apt install python3-venv 5.
  • Activa el entorno virtual:bashsource venv_nilmtk/bin/activate Una vez activado, tu prompt de la terminal debería cambiar para indicar que estás dentro del entorno virtual (por ejemplo, (venv_nilmtk) canjayar@carlosrn:...$).

2. Instalar Jupyter y tus Dependencias Dentro del Entorno Virtual

Ahora que el entorno virtual está activo, pip (o python -m pip) instalará los paquetes dentro de este entorno aislado, sin afectar al sistema global.

  • Instala Jupyter Notebook:bashpip install jupyter (Dentro de un entorno virtual activado, generalmente pip se refiere al pip del entorno, que corresponde a la versión de Python con la que se creó el entorno).
  • Instala las dependencias de NILMTK desde tu archivo requirements.txt:bashpip install -r requirements.txt
  • Instala nilm_metadata y nilmtk en modo desarrollo (como se indicó anteriormente, pero ahora dentro del entorno virtual):bashcd nilm_metadata # Ajusta la ruta si es diferente python setup.py develop cd ../nilmtk # Ajusta la ruta si es diferente python setup.py develop cd .. # Vuelve al directorio raíz de tu proyecto

3. Ejecutar Jupyter Notebook

Con el entorno virtual aún activado:

  • Inicia Jupyter Notebook:bashjupyter notebook --no-browser
  • Copia la URL proporcionada (incluyendo el token) y pégala en tu navegador de Windows 11.

Otras Opciones (Menos Recomendadas)

  • Usar --break-system-packages: Podrías forzar la instalación global con pip3 install jupyter --break-system-packages 24. Sin embargo, esto no es recomendable ya que puede causar problemas con los paquetes gestionados por el sistema operativo y potencialmente romper tu instalación de Python o WSL 15.
  • Instalar con apt: Podrías intentar sudo apt install python3-notebook (el nombre del paquete puede variar). Esto instalaría la versión de Jupyter de los repositorios de tu distribución, que podría no ser la más reciente o la que necesitas. Generalmente, para desarrollo Python, se prefiere pip dentro de un entorno virtual para tener más control sobre las versiones de los paquetes.

Error de dependencias

El error en la instalación de dependencias, específicamente con nilm-metadata @ file:///home/user/nilm_metadata, se debe a que pip está intentando encontrar el paquete nilm-metadata en la ruta del sistema de archivos WSL (/home/user/nilm_metadata), pero esa ruta no es válida desde la perspectiva de Windows (donde la ruta correcta sería C:\Users\user\mi_proyecto_nilmtk).

Para solucionar esto, tienes que modificar la referencia a nilm-metadata en tu archivo requirements.txt para que pip pueda encontrar el paquete correctamente. Hay dos opciones principales:

Opción 1: Modificar requirements.txt para usar la ruta WSL correcta (recomendado)

  1. Edita requirements.txt dentro de WSL. Abre el archivo requirements.txt con un editor de texto (como nano o vim) dentro de tu entorno WSL.
  2. Encuentra la línea que menciona nilm-metadata. Debería ser algo como:textnilm-metadata @ file:///home/carlos/nilm_metadata
  3. Cambia la ruta a la ruta WSL correcta. Si tu directorio de proyecto mi_proyecto_nilmtk está directamente dentro de tu directorio de inicio en WSL, la ruta podría ser correcta. Sin embargo, si has movido la carpeta nilm_metadata a otro lugar dentro de WSL, asegúrate de que la ruta refleje la ubicación correcta dentro del sistema de archivos de WSL.Por ejemplo, si la estructura de directorios en WSL es:text/home/carlos/mi_proyecto_nilmtk/nilm_metadata Entonces la línea en requirements.txt debería ser:textnilm-metadata @ file:///home/carlos/mi_proyecto_nilmtk/nilm_metadata
  4. Guarda los cambios en requirements.txt.
  5. Reintenta la instalación:bashpip install -r requirements.txt

Opción 2: Eliminar la referencia y usar pip install -e . en la carpeta nilm_metadata

Esta opción es útil si planeas desarrollar activamente nilm_metadata y quieres que los cambios se reflejen inmediatamente.

  1. Elimina la línea de nilm-metadata de requirements.txt.
  2. Instala nilm_metadata en modo editable:bashcd nilm_metadata pip install -e . cd .. # Para volver al directorio principal de tu proyecto

Consideraciones Adicionales

  • Entornos Virtuales: Asegúrate de que tu entorno virtual esté activado cuando realices estos cambios y reinstales las dependencias.
  • Permisos: Los permisos de archivo dentro de WSL pueden ser a veces problemáticos, especialmente cuando se interactúa con archivos en el sistema de archivos de Windows. Si encuentras errores de permiso, verifica que tienes los permisos adecuados para leer y escribir en los directorios y archivos relevantes desde dentro de WSL. 3.
  • Rutas absolutas vs. relativas: En general, es mejor usar rutas relativas dentro de requirements.txt si es posible, para que el archivo sea más portátil. Sin embargo, con instalaciones locales como esta, a veces las rutas absolutas son más directas.
  • WSL2 file system: WSL2 utiliza un sistema de archivos virtualizado. Asegúrate de que las rutas sean correctas dentro de este sistema.

Al seguir estos pasos y asegurarte de que las rutas en tu requirements.txt son correctas para el sistema de archivos WSL, deberías poder resolver el error y continuar con la instalación de NILMTK.

Una respuesta a “Replicar en W11 un entorno python de Ubuntu

  1. Avatar de milkywaytours microespana octubre 1, 2025 / 5:36 pm

    “Muy buen artículo. Me ayudó muchísimo el paso a paso para configurar Ubuntu en Windows 11 usando WSL.
    Para quienes quieran complementar este tutorial, aquí comparto otro recurso útil: Guía avanzada de Ubuntu + WSL
    ¿Alguien que ya lo ha probado con distribuciones ligeras como Xubuntu tiene alguna recomendación extra? Saludos y gracias por compartir. 😊”

    Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.