Ir directamente al contenido
  • Videoblog
  • Electronica General
  • Domotica
  • electronica de consumo y de entretenimiento
  • Utilidades y SW
  • Android
  • Aspectos legales
  • Sobre el autor

Soloelectronicos.com

Disfrutando de nuestro mundo tecnológico intentando mejorar nuestra calidad de vida

instalacion nilmtk

Instalación completa de NILMTK en w11

mayo 30, 2025junio 5, 2025soloelectronicosDeja un comentario

Después de toda una odisea (el extracto esta mas abajo), creo es necesario una guía clara y concisa para replicar una instalación funcional de nilmtk, nilm_metadata y nilmtk-contrib en una nueva máquina Windows 11, minimizando los problemas.

Basándonos en toda la experiencia previa y las guías de los resultados de búsqueda, en este post he intentado ofrecer un enfoque consolidado y robusto sobre como instalar estos tres paquetes de python de software libre especializados en la disgregación de la energia eléctrica , tema que hemos tratado en numerosas ocasiones en este blog tanto a nivel hardware , como a nivel software. Se ha intentado priorizar la creación de un entorno base estable con versiones de paquetes que se sabe son compatibles, y luego instalar los componentes de NILMTK.

Tenemos en principio dos opciones:

Opción A — Conda (más sencilla, pero limitada)

conda install -c nilmtk nilmtk=0.4.3 -y
  • ✅ Más fácil de instalar.
  • ❌ Solo funciona si no hay conflictos con versiones de pandas, python, etc.
  • ❌ Puede fallar en Windows por incompatibilidades del canal conda de nilmtk.
  • ✅ No necesitas clonar el repositorio manualmente.

👉 Recomendada si funciona sin errores tras crear el entorno con python=3.7.

Opción B — Instalación desde GitHub (más flexible y robusta)

git clone https://github.com/nilmtk/nilmtk.git
cd nilmtk
python setup.py develop
  • ✅ Te da más control.
  • ✅ Puedes modificar código fuente de nilmtk.
  • ✅ Obligatoria si usarás también nilmtk-contrib, que depende de modificar código fuente.
  • ❗ Necesitas instalar manualmente las versiones compatibles de las dependencias (como pandas==0.25.3, numpy==1.18.5, etc.).

👉 Recomendada si quieres usar también nilmtk-contrib, o evitar errores con conda install. Dado que quremos instalar nilmtk, nilm_metadata y nilmtk-contrib, lo más robusto y estable es usar la Opción B (instalación desde GitHub) con dependencias bien controladas por pip.

2024 03 31 12 37 03 INSTALAR NILMTK EN UBUNTU Busqueda de Google y 6 paginas mas Personal  Micro

OPCION B— INSTALACIÓN DE NILMTK EN WINDOWS (2025)

📌 Requisitos previos

  • Tienes instalado Anaconda o Miniconda(Miniconda es gratuito y funciona perfectamente).
  • Usas Windows 10 u 11.
  • Tienes Git instalado (git --version debe funcionar). Si no lo tienes descargalo e instala Git desde https://git-scm.com/download/win.
  • Tienes conexión a Internet.
  • Tener descargado desde Github los paquetes nilmtk, nilmtk_metadata y nilmtk_contrib (descargados y descomprimidos en carpetas colgado del directorio personal).
  • Microsoft Visual Studio Code con los complementos de Python y Jupyter Notebook (aconsejable)

GUÍA COMPLETA Y FUNCIONAL PARA INSTALAR NILMTK Y NILM_METADATA EN WINDOWS:


🔁 PASO 0 – Eliminar entorno anterior y limpiar caché

🧹 0.1. Borrar entorno anterior

conda deactivate
conda remove --name nilmtk-env --all

🧼 0.2. Borrar cachés pip y temporales

rmdir /S /Q %USERPROFILE%\AppData\Local\pip\cache
rmdir /S /Q %USERPROFILE%\AppData\Local\pip\wheels
rmdir /S /Q C:\Users\carlo\nilmtk\build
rmdir /S /Q C:\Users\carlo\nilm_metadata\build
del /Q /F %TEMP%\*

🧱 PASO 1 – Crear entorno virtual limpio con Python 3.7.12

conda create -n nilmtk-env python=3.7.12
conda activate nilmtk-env

Problema posible:El error PackagesNotFoundError: The following packages are not available from current channels: - python=3.7.12 ocurre porque la versión específica de Python (3.7.12) que intentas instalar no está disponible en el canal defaults para Windows actualmente.

Soluciones
1. Usa una versión disponible de Python 3.7:En vez de pedir la versión exacta 3.7.12, puedes solicitar simplemente python=3.7, lo que instalará la versión 3.7 más reciente disponible en los canales configurados:

conda create -n nilmtk-env python=3.7
Esto suele ser suficiente para la mayoría de los casos y es la recomendación general de la documentación de conda.

2. Agrega canales adicionales (conda-forge) ACONSEJABLE:Algunas versiones antiguas solo están disponibles en otros canales como conda-forge. Puedes añadir este canal y luego intentar crear el entorno:

conda create -n nilmtk-env python=3.7.12 -c conda-forge
Esto amplía las fuentes de paquetes y puede resolver el problema si el paquete existe en conda-forge.

3. Verifica versiones disponibles :Puedes consultar las versiones de Python disponibles para Windows-64 en conda-forge en la página oficial de Anaconda. Si ves que 3.7.12 no está disponible para win-64, deberás usar una versión diferente o cambiar de canal.

4. Considera usar una versión más reciente de Python :Si el paquete o proyecto lo permite, considera usar una versión más reciente de Python (por ejemplo, 3.9, 3.10, etc.), ya que las versiones antiguas pueden estar descontinuadas en los canales principales.

📦 PASO 2 – Instalar dependencias compatibles

pip install numpy==1.18.5
pip install pandas==1.1.5
pip install scikit-learn==0.24.2
pip install h5py==2.10.0
pip install tables==3.6.1
pip install keras==2.4.3
pip install tensorflow==2.3.0
pip install ipykernel jupyter

🧪 PASO 3 – Instalar NILMTK (modo editable)

cd C:\Users\carlo\nilmtk
pip install -e . --no-deps

🧪 PASO 4 – Instalar NILM Metadata (modo editable)

cd C:\Users\carlo\nilm_metadata
pip install -e .

✅ PASO 5 – Verificar instalación

Abre Python o un notebook y ejecuta:

import nilmtk
import nilm_metadata
print("¡NILMTK y NILM Metadata funcionando correctamente!")





PROBLEMAS:El error ModuleNotFoundError: No module named 'networkx' indica que el módulo networkx no está instalado en el entorno donde estás ejecutando Jupyter y usando NILMTK.

Cómo solucionarlo
Paso 1: Instalar networkx:Abre una terminal o usa una celda en Jupyter para instalar el paquete:
pip install networkx
O si usas conda (recomendado si NILMTK está en un entorno conda):
conda install networkx
Paso 2: Verifica que la instalación sea en el entorno correcto.Si usas un entorno conda llamado, por ejemplo, nilmtk-env, asegúrate de activarlo antes de instalar:

conda activate nilmtk-env
conda install networkx
O desde Jupyter, asegúrate de que el kernel que usas corresponde a ese entorno.

Paso 3 (opcional): Instalar todas las dependencias de NILMTK,Para evitar problemas con otros módulos faltantes, puedes instalar NILMTK con todas sus dependencias:


pip install nilmtk[all]
O si lo instalaste desde conda-forge:

bash
conda install -c conda-forge nilmtk
El nuevo error ModuleNotFoundError: No module named 'matplotlib' indica que el paquete matplotlib no está instalado en tu entorno actual.

Solución
Paso 1: Instalar matplotlib
Abre una terminal o usa una celda en Jupyter y ejecuta:

bash
pip install matplotlib
O si usas conda:

bash
conda install matplotlib
Paso 2: Verifica el entorno activo
Si usas un entorno conda, asegúrate de activarlo antes de instalar:

bash
conda activate nilmtk-env
conda install matplotlib
Paso 3: Reinicia el kernel de Jupyter
Después de instalar, reinicia el kernel para que los cambios tengan efecto.

Recomendación adicional
Para evitar problemas con dependencias faltantes, puedes instalar todas las dependencias recomendadas para NILMTK con:

bash
pip install nilmtk[all]
O asegurarte de instalar todos los paquetes necesarios listados en la documentación oficial

🧠 PASO 6 – Confirmar rutas de instalación

import nilmtk
print(nilmtk.__file__)
import nilm_metadata
print(nilm_metadata.__file__)

📓 PASO 7 – Habilitar entorno en Jupyter Notebook

🔧 7.1. Instalar ipykernel (si no lo hiciste ya)

pip install ipykernel

📚 7.2. Registrar el entorno como kernel de Jupyter

python -m ipykernel install --user --name nilmtk-env --display-name "Python 3.7 (nilmtk-env)"

Esto hace que el entorno aparezca como opción en Jupyter Notebook y en VS Code.


▶️ PASO 8 – Ejecutar notebooks con el kernel correcto

En Visual Studio Code:

  • Abre tu .ipynb
  • En la esquina superior derecha selecciona: scssCopiarEditarPython 3.7 (nilmtk-env)

En Jupyter Notebook (navegador):

  • Ejecuta en consola: bashCopiarEditarjupyter notebook
  • Elige el kernel: scssCopiarEditarPython 3.7 (nilmtk-env)

Dentro de Python escribe:
from nilmtk import DataSet
print("✅ NILMTK instalado correctamente.")
exit()

🗂️ Estructura recomendada de carpetas

En tu carpeta principal (por ejemplo: C:\Users\carlo\nilm_projects\), la estructura debe ser:


nilm_projects/
├── nilmtk/
├── nilm_metadata/
└── nilmtk-contrib/

INSTALACION NILMTK_CONTRIB

PASO 1 – Activar entorno y clonar repositorio

conda activate nilmtk-env
cd C:\Users\carlo
git clone https://github.com/nilmtk/nilmtk-contrib.git
cd nilmtk-contrib

📄 PASO 2 – Crear requirements.txt compatible

A. Método automático desde terminal (CMD o Anaconda Prompt):

echo matplotlib==3.2.2 > requirements.txt
echo scikit-learn==0.24.2 >> requirements.txt
echo tensorflow==2.3.0 >> requirements.txt
echo keras==2.4.3 >> requirements.txt
echo h5py==2.10.0 >> requirements.txt
echo tables==3.6.1 >> requirements.txt
echo pandas==1.1.5 >> requirements.txt
echo numpy==1.18.5 >> requirements.txt

B. O crea manualmente el archivo requirements.txt con este contenido:

matplotlib==3.2.2
scikit-learn==0.24.2
tensorflow==2.3.0
keras==2.4.3
h5py==2.10.0
tables==3.6.1
pandas==1.1.5
numpy==1.18.5

📥 PASO 3 – Instalar dependencias necesarias

pip install -r requirements.txt --no-deps

⚙️ PASO 4 – Instalar nilmtk-contrib en modo editable

pip install -e . --no-deps

Si todo ha ido bien, deberías ver:

Successfully installed nilmtk-contrib

✅ PASO 5 – Verificar instalación desde Python o Jupyter

Abre Jupyter en VSCode o navegador:

jupyter notebook

Y en una celda:

import nilmtk
import nilmtk_contrib
print("Todo funcionando correctamente.")

Photo by Pixabay on Pexels.com

OTRAS ALTERNATIVAS

La opción B, es la opción deseable mas probada y que debería funcionar , pero como este mundo es tan variable no siempre las cosas funcionan como quisiéramos , así que ahora os muestro algunas otras opciones se supone que deberían llegar al mismo final:

OPCION 1 ( NO SIEMPRE FUNCIONAL)

1. Limpieza (Opcional, pero recomendado si hubo intentos previos en la nueva máquina):
Si ya has intentado instalar NILMTK en la nueva máquina y falló, es bueno empezar limpio. Abre «Anaconda Prompt» (o tu terminal configurada para Conda) y ejecuta:

conda deactivate
conda env remove -n nilmtk-env
conda clean --all --yes

2. Crear un Entorno Conda Base Compatible:
Este es el paso más crucial. Crearemos un entorno con Python 3.7 y versiones específicas de las dependencias clave que son conocidas por su compatibilidad con nilmtk 0.4.3 45.

conda create -n nilmtk-env python=3.7 numpy=1.19.5 pandas=1.1.5 matplotlib=3.1.3 scikit-learn=0.22.2.post1 h5py=2.10 pytables=3.6.1 networkx=2.5 pip -c conda-forge -y
  • python=3.7: Versión de Python que ofrece buena compatibilidad con las dependencias más antiguas que nilmtk 0.4.3 podría necesitar.
  • numpy=1.19.5: Crucial para nilmtk 0.4.3 (requiere <1.20).
  • pandas=1.1.5: Una versión de Pandas que debería funcionar bien con NumPy 1.19.5 y Python 3.7. (Si nilmtk=0.4.3 del canal nilmtk insiste en pandas<1.0, Conda podría intentar degradarlo durante la instalación de nilmtk).
  • Otras dependencias: Versiones específicas para evitar conflictos.
  • -c conda-forge: Usar el canal conda-forge para obtener estos paquetes.

3. Activar el Nuevo Entorno:

conda activate nilmtk-env

4. Instalar nilmtk (Versión Estable de Conda):
Instalaremos la versión 0.4.3 directamente desde el canal nilmtk 134.

conda install -c nilmtk nilmtk=0.4.3 -y

Verifica si Conda intenta cambiar la versión de Pandas. Si es así y lo degrada a algo <1.0 (p.ej., 0.25.3), está bien, ya que nilmtk=0.4.3 podría requerirlo.

5. Instalar nilm_metadata desde tu Repositorio Local (si lo prefieres así):
Si tienes un repositorio local de nilm_metadata que sabes que funciona y quieres usar:

cd RUTA_A_TU_REPOSITORIO_NILM_METADATA
pip install -e .

Alternativamente, puedes instalarlo desde GitHub 4:

pip install git+https://github.com/nilmtk/nilmtk-metadata.git

6. Instalar Dependencias de nilmtk-contrib (TensorFlow y CVXPY) con Conda (¡con cuidado!):<–OPCIONAL
Este es el paso delicado. Necesitamos instalar tensorflow y cvxpy sin que rompan nuestro numpy=1.19.5.

  • Intentaremos con TensorFlow 2.4.x, que es una de las últimas versiones que podría ser compatible con NumPy 1.19.x .
conda install -c conda-forge tensorflow=2.4 cvxpy -y
  • Verifica NumPy INMEDIATAMENTE después:
    python -c "import numpy; print(numpy.__version__)"
  • Si NumPy sigue siendo 1.19.5 (o <1.20): ¡Perfecto! Procede al siguiente paso.
  • Si NumPy se actualizó: Esto indica un conflicto fundamental. La instalación de tensorflow=2.4 no fue compatible con mantener numpy=1.19.5. En este punto, tendrías que:
    • O bien, encontrar una versión aún más antigua de TensorFlow (y Keras) que sí sea compatible.
    • O, si tu nilmtk-contrib local no usa características muy nuevas de TensorFlow, podrías intentar la instalación de nilmtk-contrib sin TensorFlow preinstalado y ver si pip puede encontrar una solución (aunque esto es arriesgado).
    • O reconsiderar la necesidad de nilmtk-contrib si este conflicto es irresoluble con nilmtk 0.4.3.

7. Instalar nilmtk-contrib desde tu Repositorio Local (usando --no-deps):
Asumiendo que el Paso 6 fue exitoso y NumPy está intacto:

cd RUTA_A_TU_REPOSITORIO_NILMTK_CONTRIB
pip install -e . --no-deps

La opción --no-deps es crucial para evitar que pip intente reinstalar dependencias (como NumPy) que ya has configurado cuidadosamente con Conda.

Alternativamente, si no necesitas tu versión local y quieres probar la de GitHub 4:

pip install git+https://github.com/nilmtk/nilmtk-contrib.git

(Pero esto podría traer sus propios problemas de dependencias si la rama principal de nilmtk-contrib ha avanzado).

8. Modificar nilmtk-contrib para Importaciones de Keras/TensorFlow (si es necesario):
Puede ocurrir que tu nilmtk-contrib local podría usar rutas de importación obsoletas para Keras. Si, después de la instalación, obtienes errores como ModuleNotFoundError: No module named 'tensorflow.keras.layers.core' o ...tensorflow.keras.layers.pooling':

  • Navega a los archivos .py dentro de tu nilmtk-contrib local que causan el error.
  • Cambia las importaciones. Por ejemplo:
    • from tensorflow.keras.layers.core import Activation -> from tensorflow.keras.layers import Activation
    • from tensorflow.keras.layers.pooling import AveragePooling1D -> from tensorflow.keras.layers import AveragePooling1D
  • Repite para cualquier otra importación obsoleta de Keras.

9. Instalar Jupyter y Registrar el Kernel (Opcional, para uso con notebooks):

pip install notebook ipykernel
python -m ipykernel install --user --name nilmtk-env --display-name "Python (nilmtk-env)"

10. Verificar la Instalación Completa:
Abre Python en tu entorno nilmtk-env y ejecuta el siguinte script:
python import numpy
print(f»NumPy: {numpy.__version__}»)
# Esperado: 1.19.5
import pandas
print(f»Pandas: {pandas.__version__}»)
# Esperado: 1.1.5 o <1.0 (p.ej., 0.25.3)
import tensorflow
print(f»TensorFlow: {tensorflow.__version__}»)
# Esperado: ~2.4.x
import nilm_metadata
print(f»nilm_metadata: {nilm_metadata.__version__}»)
import nilmtk print(f»NILMTK: {nilmtk.__version__}»)
# Esperado: 0.4.3 from nilmtk import DataSet
print(«NILMTK DataSet importado.»)
# Intenta importar un componente de nilmtk_contrib si la instalación fue exitosa # from nilmtk_contrib.disaggregate import CO
# print(«Componente de nilmtk_contrib importado.»)
print(«¡Verificación completada!»)

Esta guía es un intento de consolidar las lecciones aprendidas. La clave es la creación de un entorno base con versiones muy específicas y el manejo cuidadoso de la instalación de nilmtk-contrib para no perturbar numpy. Si el conflicto de tensorflow con numpy=1.19.5 resulta ser insuperable (Paso 6), esa será la principal barrera para usar tu nilmtk-contrib local con nilmtk 0.4.3..

Photo by Belle Co on Pexels.com

OPCION 2

Una solución más robusta: Recrear el entorno con Python 3.7

Como los conflictos de dependencia con Python 3.8 pueden ser persistentes para las versiones más antiguas de Pandas que nilmtk=0.4.3 requiere, la estrategia más efectiva es recrear el entorno utilizando Python 3.7. Varias guías, incluida la de soloelectronicos.com 4, sugieren explícitamente python=3.7 para una instalación más fluida de NILMTK y sus componentes más antiguos.

  1. Desactiva y elimina el entorno actual:>conda deactivate C:\Users\carlo>conda env remove -n nilmtk-env C:\Users\carlo>conda clean --all --yes
  2. Crea un nuevo entorno con python=3.7 y las dependencias base compatibles:
    Nos basaremos en la configuración recomendada en la guía de soloelectronicos.com4, que ha demostrado ser efectiva-C:\Users\carlo>conda create -n nilmtk-env python=3.7 numpy=1.19.5 pandas=1.1.5 matplotlib=3.1.3 scikit-learn=0.22.2.post1 h5py=2.10 pytables=3.6.1 networkx=2.5 pip -c conda-forge -y
    • Este comando crea un entorno con versiones específicas de Python y las principales bibliotecas científicas que se sabe que funcionan bien juntas para NILMTK.
    • pandas=1.1.5 se usa aquí porque con Python 3.7 debería ser compatible. El conflicto anterior era específico de nilmtk=0.4.3 (del canal nilmtk) exigiendo pandas<1.0. Si después de instalar nilmtk hay problemas, podríamos ajustar pandas a 0.25.3.
  3. Activa el nuevo entorno:bashC:\Users\carlo>conda activate nilmtk-env
  4. Instala nilmtk:
    Ahora que el entorno base es más compatible, la instalación de nilmtk debería ser más sencilla conda install -c nilmtk nilmtk=0.4.3 -y El requisito de pandas<1.0 de nilmtk=0.4.3 podría entrar en conflicto con el pandas=1.1.5 que acabamos de instalar. Si es así, Conda debería intentar degradar Pandas. Si no puede, entonces el pandas=1.1.5 en el comando de creación del entorno fue un mal consejo de la guía, y deberíamos haber usado pandas=0.25.3 desde el principio con Python 3.7.Si el comando anterior falla debido a un conflicto con Pandas:
    Intenta esto en su lugar, omitiendo pandas en el comando de creación del entorno (paso 2) y dejando que nilmtk lo traiga: # (Si estás rehaciendo desde el paso 1) # Paso 2 modificado: conda create -n nilmtk-env python=3.7 numpy=1.19.5 matplotlib=3.1.3 scikit-learn=0.22.2.post1 h5py=2.10 pytables=3.6.1 networkx=2.5 pip -c conda-forge -y # Paso 3: conda activate nilmtk-env # Paso 4: >conda install -c nilmtk -c conda-forge nilmtk=0.4.3 numpy=1.19.5 -y # Esto debería instalar nilmtk=0.4.3 y, como dependencia, pandas <1.0.
  5. Reinstala nilm_metadata desde tu directorio local:
    Una vez que nilmtk y sus dependencias estén instalados, reinstala nilm_metadata desde la ubicación donde lo tienes descargado. cd RUTA_A_TU_REPOSITORIO_NILM_METADATA (nilmtk-env) C:\ruta\a\tu\repositorio\nilm_metadata>pip install -e .
  6. Verifica la instalación completa:
    Ejecuta tu script de diagnóstico o prueba las importaciones manualmente en un intérprete de Python. import sys print(f"Python version: {sys.version}") # Debería ser ~3.7.x import numpy print(f"NumPy version: {numpy.__version__}") # Debería ser 1.19.5 import pandas print(f"Pandas version: {pandas.__version__}") # Debería ser <1.0 (p.ej., 0.25.3) import nilmtk print(f"NILMTK version: {nilmtk.__version__}") # Debería ser 0.4.3 import nilm_metadata print(f"nilm_metadata version: {nilm_metadata.__version__}") # Debería ser 0.2.5 from nilmtk import DataSet print("¡Importación de 'from nilmtk import DataSet' EXITOSA!")

Recrear el entorno con python=3.7 es la estrategia más prometedora en este punto, ya que la compatibilidad de pandas<1.0 con Python 3.8 parece ser el principal obstáculo con el paquete nilmtk=0.4.3 del canal nilmtk. La salida del script de diagnóstico deberia mostar:

Ruta del ejecutable de Python: c:\Users\carlo\anaconda3\envs\nilmtk-env\python.exe
'nilmtk' está instalado en este kernel: True (Versión: 0.4.0.dev1+git.303d45b)
'nilm_metadata' está instalado en este kernel: True (Versión detectada: 0.2.5)
(Detalle: 'nilm-metadata' (pip style): True, 'nilm_metadata' (conda style): False)
--- Intentando importar nilmtk y DataSet ---
Versión de nilmtk importada: 0.4.0.dev1+git.303d45b
Versión de nilm_metadata importada: 0.2.5.dev-7ed4bab
from nilmtk import DataSet -- ¡ÉXITO!

Análisis de la situación :

  1. Versiones de desarrollo locales: Estás utilizando las versiones de desarrollo de nilmtk y nilm_metadata de tus repositorios locales (instaladas probablemente con pip install -e .). Esto es evidente por las cadenas de versión que incluyen dev1+git....
  2. Éxito en la importación: Lo más importante es que from nilmtk import DataSet funciona sin errores. Esto significa que, para estas versiones específicas que tienes, las dependencias principales (como NumPy y Pandas) están en un estado compatible.
  3. No hay error de np.bool: El hecho de que no aparezca el error module 'numpy' has no attribute 'bool' al importar DataSet implica que la combinación de nilmtk 0.4.0.dev1+git.303d45b, la versión de pandas que tiene, y la versión de numpy que tiene, son compatibles en este aspecto.
    • Esto podría significar que la versión de desarrollo de nilmtk que estás usando ya no depende de partes de pandas que usaban np.bool de forma problemática, o que la versión de pandas que se instaló con ella ya maneja esto correctamente, o que la versión de numpy instalada (que podría ser más nueva, compatible con los requisitos del setup.py de tu nilmtk de desarrollo) es la que pandas espera.

Conclusión: Has logrado un entorno funcional utilizando las versiones de tus repositorios locales para nilmtk y nilm_metadata. Esto es genial porque querías usar estas versiones que sabías que funcionaban en Ubuntu. Posibles próximos pasos (opcional, solo si quieres instalar nilmtk-contrib o alinear con versiones de Conda):

  • Verificar versiones de NumPy y Pandas: Sería útil saber qué versiones de NumPy y Pandas están realmente activas en este entorno funcional. Puedes ejecutar:pythonimport numpy print(f"NumPy version: {numpy.__version__}") import pandas print(f"Pandas version: {pandas.__version__}") Esto te ayudará a entender qué combinación específica de estas dependencias es la que funciona con tu nilmtk 0.4.0.dev1+git.303d45b.
  • Instalación de nilmtk-contrib:
    Si ahora intentas instalar nilmtk-contrib desde tu repositorio local, el proceso podría ser más fluido si las dependencias de nilmtk-contrib (especialmente TensorFlow/Keras y sus requisitos de NumPy) son compatibles con las versiones de NumPy y Pandas que ya tienes en tu entorno.
    • Procede con cuidado, instalando nilmtk-contrib con pip install -e . desde su directorio.
    • Presta atención a si pip intenta cambiar tu versión actual de NumPy. Si lo hace, podrías volver a tener conflictos. Podrías necesitar instalar tensorflow y cvxpy (dependencias de nilmtk-contrib) por separado usando Conda, intentando encontrar versiones que sean compatibles con tu NumPy actual, y luego instalar nilmtk-contrib con pip install -e . --no-deps.
  • Alineación con versiones de Conda (si alguna vez lo necesitas):
    Si en el futuro quisieras pasar de tus versiones locales a las versiones de Conda (por ejemplo, nilmtk 0.4.3), tendrías que:
    1. Desinstalar las versiones editables (por ejemplo, navegando a cada directorio y usando pip uninstall nilmtk, pip uninstall nilm-metadata).
    2. Instalar las versiones de Conda (conda install -c nilmtk nilmtk=0.4.3, etc.).
    3. Asegurarte de que NumPy y Pandas estén en versiones compatibles con nilmtk 0.4.3 (NumPy <1.20, Pandas <1.0 o ligeramente superior pero compatible).

Pero por ahora, ¡celebra que los componentes principales de NILMTK están funcionando! Ya puedes empezar a trabajar con tus datasets.Después de este extenso proceso, refinar la guía es una excelente idea. El objetivo es que sea lo más robusta y clara posible para futuras instalaciones o para otros usuarios.Aquí una versión mejorada de la guía, incorporando las lecciones aprendidas, especialmente sobre la compatibilidad de versiones y el manejo de nilmtk-contrib.

Photo by Pixabay on Pexels.com

OPCION 3

Guía para Instalar NILMTK, NILM-Metadata y NILMTK-Contrib en Windows 11

Esta guía se enfoca en usar versiones estables y conocidas de los componentes principales y aborda los problemas comunes de dependencia y las adaptaciones necesarias para nilmtk-contrib.

Requisitos Previos:

  • Anaconda o Miniconda: Instalado y añadido al PATH (o usar «Anaconda Prompt»).
  • Git para Windows: Instalado y accesible desde la línea de comandos.
  • Repositorios Locales (Opcional, pero asumido para nilm_metadata y nilmtk-contrib según tus preferencias):
    • Clona o descarga los repositorios de nilmtk-metadata y nilmtk-contrib a una ubicación conocida si planeas usar tus versiones locales.
      • nilmtk-metadata: git clone https://github.com/nilmtk/nilm-metadata.git
      • nilmtk-contrib: git clone https://github.com/nilmtk/nilmtk-contrib.git (o la URL de tu fork/versión específica)

Fase 1: Creación y Configuración del Entorno Conda Base

  1. Limpieza (Recomendado para una nueva máquina o después de intentos fallidos):
    Abre «Anaconda Prompt» (o tu terminal). conda deactivate conda env remove -n nilmtk-env conda clean --all --yes
  2. Crear Entorno nilmtk-env con Python 3.7 y Dependencias Clave:
    Python 3.7 ofrece la mejor compatibilidad con las versiones de NILMTK y Pandas que buscamos. conda create -n nilmtk-env python=3.7 numpy=1.19.5 pandas=1.1.5 matplotlib=3.1.3 scikit-learn=0.22.2.post1 h5py=2.10 pytables=3.6.1 networkx=2.5 pip -c conda-forge -y
    • Explicación de versiones:
      • python=3.7: Base del entorno.
      • numpy=1.19.5: Requisito para nilmtk 0.4.3 (que es <1.20).
      • pandas=1.1.5: Versión compatible con NumPy 1.19.5 y Python 3.7.
      • Otras: Versiones específicas para estabilidad.
    • -c conda-forge: Esencial para la disponibilidad de estos paquetes.
  3. Activar el Nuevo Entorno: conda activate nilmtk-env

Fase 2: Instalación de NILMTK y NILM-Metadata

  1. Instalar nilmtk (Versión Estable 0.4.3): conda install -c nilmtk nilmtk=0.4.3 -y
    • Nota: nilmtk=0.4.3 del canal nilmtk podría tener una dependencia estricta de pandas<1.0. Si es así, Conda intentará degradar pandas (p.ej., de 1.1.5 a 0.25.3). Esto es aceptable y esperado.
  2. Instalar nilm_metadata (desde tu local o GitHub):
    • Opción A (Desde tu repositorio local): cd RUTA_A_TU_REPOSITORIO_NILM_METADATA pip install -e .
    • Opción B (Desde GitHub, si no necesitas tu versión local): pip install git+https://github.com/nilmtk/nilm-metadata.git
  3. Verificación Intermedia:bashpython -c "import numpy; print(f'NumPy: {numpy.__version__}'); import pandas; print(f'Pandas: {pandas.__version__}'); import nilmtk; print(f'NILMTK: {nilmtk.__version__}'); import nilm_metadata; print(f'nilm_metadata: {nilm_metadata.__version__}')"
    • Verifica que NumPy sea 1.19.5, Pandas sea el esperado (p.ej., 1.1.5 o <1.0), NILMTK sea 0.4.3 y nilm_metadata se importe.

Fase 3: Instalación de NILMTK-Contrib y sus Dependencias

Este es el paso más propenso a errores debido a TensorFlow.

  1. Instalar Dependencias de nilmtk-contrib (TensorFlow, CVXPY) con Conda:
    El objetivo es instalar versiones compatibles que no rompan numpy=1.19.5. TensorFlow 2.4.x es una buena apuesta inicial. conda install -c conda-forge tensorflow=2.4 cvxpy keras -y
    • Nota sobre Keras: Aunque TensorFlow 2.x incluye Keras (tf.keras), algunas partes de nilmtk-contrib podrían intentar import keras. Instalar el paquete keras de conda-forge puede ayudar a resolver esto, ya que a menudo es un meta-paquete que se alinea con la versión de TF.
  2. Verificar NumPy INMEDIATAMENTE después de instalar TensorFlow: python -c "import numpy; print(f'NumPy version tras TF: {numpy.__version__}')"
    • Si NumPy sigue siendo 1.19.5 (o <1.20): ¡Excelente! Procede.
    • Si NumPy se actualizó (p. ej., a 1.21.x o más): El conflicto es profundo.
      • Alternativa: Intenta con una versión más antigua de TensorFlow (p. ej., tensorflow=2.3 o tensorflow=2.2). Cada vez que lo hagas, verifica NumPy. Si ninguna versión de TF 2.x funciona sin romper NumPy 1.19.5, la compatibilidad es muy difícil de lograr para tu nilmtk-contrib local.
  3. Instalar nilmtk-contrib (desde tu repositorio local):
    Asumiendo que NumPy está intacto, instala nilmtk-contrib sin que pip maneje sus dependencias.bashcd RUTA_A_TU_REPOSITORIO_NILMTK_CONTRIB pip install -e . --no-deps
  4. Modificar Código de nilmtk-contrib para Importaciones de Keras/TensorFlow:
    Si al intentar usar nilmtk-contrib (o durante la importación) obtienes ModuleNotFoundError para módulos como tensorflow.keras.layers.core o tensorflow.keras.layers.pooling:
    • Edita los archivos .py de nilmtk-contrib que causan el error.
    • Cambia las importaciones obsoletas a las rutas modernas. Ejemplos:
      • from tensorflow.keras.layers.core import Activation -> from tensorflow.keras.layers import Activation
      • from tensorflow.keras.layers.pooling import AveragePooling1D -> from tensorflow.keras.layers import AveragePooling1D
      • Y así sucesivamente para otras capas (Dense, Conv2D, LSTM, etc.). Todas suelen estar directamente bajo tensorflow.keras.layers.
    • Guarda los cambios. Necesitarás hacer esto para cada importación obsoleta que encuentres.

Fase 4: Verificación Final y Uso

  1. Instalar Jupyter (Opcional): pip install notebook ipykernel python -m ipykernel install --user --name nilmtk-env --display-name "Python (nilmtk-env)"
  2. Prueba de Importación Completa:
    Abre un intérprete de Python o un Jupyter Notebook usando el kernel nilmtk-env.python
import numpy
print(f"NumPy: {numpy.__version__}")
import pandas
print(f"Pandas: {pandas.__version__}")
import tensorflow
print(f"TensorFlow: {tensorflow.__version__}")
import nilm_metadata
print(f"nilm_metadata: {nilm_metadata.__version__}")
import nilmtk
print(f"NILMTK: {nilmtk.__version__}")
from nilmtk import DataSet
print("NILMTK DataSet importado.")

# Intenta importar un componente de nilmtk_contrib
try:
    from nilmtk_contrib.disaggregate import CO # O cualquier otro que uses
    print("Componente de nilmtk_contrib importado con éxito.")
except Exception as e_contrib:
    print(f"Error al importar de nilmtk_contrib: {e_contrib}")
    print("Revisa si necesitas hacer más correcciones de importación en nilmtk_contrib o si hay otro problema de dependencia.")
    
print("¡Configuración base de NILMTK lista!")

Consideraciones Adicionales:

  • Rutas de Repositorios Locales: Reemplaza RUTA_A_TU_REPOSITORIO_... con las rutas absolutas correctas.
  • Errores de Compilación (poco probables con este enfoque): Si algún paquete necesita compilación y falla (p. ej., pytables), asegúrate de tener las herramientas de compilación de C de Microsoft instaladas (Build Tools for Visual Studio).
  • Flexibilidad de nilmtk-contrib: Si el conflicto de TensorFlow/NumPy es insuperable, la única opción podría ser:
    • Encontrar/adaptar una versión de nilmtk-contrib compatible con TensorFlow más antiguo (y por ende, NumPy 1.19.5).
    • Actualizar nilmtk a una versión más moderna (de desarrollo) que funcione con NumPy más nuevo, y luego adaptar nilmtk-contrib a ese entorno. Esto es más complejo y nos devuelve a los problemas iniciales.

Esta guía intenta ser lo más determinista posible. La clave es el control estricto de las versiones de las dependencias críticas (Python, NumPy, Pandas, TensorFlow) a través de Conda antes de introducir los paquetes locales con pip.

Compartir con:

  • Haz clic para compartir en Facebook (Se abre en una ventana nueva) Facebook
  • Haz clic para imprimir (Se abre en una ventana nueva) Imprimir
  • Haz clic para compartir en X (Se abre en una ventana nueva) X
  • Haz clic para compartir en Pinterest (Se abre en una ventana nueva) Pinterest
  • Haz clic para compartir en Tumblr (Se abre en una ventana nueva) Tumblr
  • Haz clic para compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
  • Haz clic para compartir en Telegram (Se abre en una ventana nueva) Telegram
  • Haz clic para enviar un enlace por correo electrónico a un amigo (Se abre en una ventana nueva) Correo electrónico
  • Haz clic para compartir en Reddit (Se abre en una ventana nueva) Reddit
  • Haz clic para compartir en Pocket (Se abre en una ventana nueva) Pocket
  • Haz clic para compartir en WhatsApp (Se abre en una ventana nueva) WhatsApp
Me gusta Cargando...
informatica, open sourceinstalacion nilmtk, instalar nilmtk-contrib, instalar nilmtk-metadata, nillmtk-contrib

Búsqueda en soloelectronicos

Solo Electrónicos Videoblog VIDEOBLOG

Novedades de soloelectronicos

diciembre 2025
L M X J V S D
1234567
891011121314
15161718192021
22232425262728
293031  
« Nov    

Blog Stats

  • 10.874.296 hits
Follow Soloelectronicos.com on WordPress.com

Comunidad soloelectronicos

  • Avatar de Desconocido
  • Avatar de Bloguer 4
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Lara Heisenberg
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de POETAS EN LA NOCHE
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de olraj
  • Avatar de ShowWorld
  • Avatar de mividasinti
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de lascronicasdelotromundo
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de vitocoloco
  • Avatar de Desconocido
  • Avatar de micheldedieu
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de abelperezcoach
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de Desconocido
  • Avatar de ositojhonn

Ultimos comentarios

  • miniPcs en ¿Existe algún enchufe inteligente que pueda ser controlado por un script ?
  • thurderon en Como comunicar dos dispositivos sin la red movil
  • soloelectronicos en Movistar Home llega a su fin: ¿qué podemos hacer ahora con él?
  • soloelectronicos en Movistar Home llega a su fin: ¿qué podemos hacer ahora con él?
  • Alberto Pérez Samartín en Movistar Home llega a su fin: ¿qué podemos hacer ahora con él?

Ultimas entradas

  • Conexión rápida de una pantalla OLED a un ESP32 diciembre 16, 2025
  • Mucho cuidado con circuitos mal diseñados para obtener una mayor corriente diciembre 14, 2025
  • Emulación Zumo de sonidos con ATmega diciembre 11, 2025
  • Emulación de Zumo32U4 con un Arduino diciembre 10, 2025
  • Algunas herramientas poco conocidas de Windows diciembre 7, 2025
  • Las Válvulas de Vacío: Pioneras de la Era Digital diciembre 6, 2025
  • ESPurna: La «Chispa» Open-Source para Domótica con ESP32 diciembre 2, 2025
  • Instalación de NILMTK y nilmtk-contrib en Windows 11: retos y solución definitiva con WSL y pyenv noviembre 27, 2025
  • ¿Qué hacer tras el fin de soporte oficial de Windows 10? Opciones reales, ventajas y cómo instalar Windows 10 LTSC noviembre 21, 2025
  • Domina el Control de Motores DC con Arduino y el Módulo L298N: Guía Fácil y Práctica noviembre 16, 2025
  • Windows Phone: El sistema operativo móvil descontinuado de Microsoft noviembre 14, 2025
  • Como obtener el numero llamante con Arduino noviembre 12, 2025
  • Como empezar con home assistant: el servidor noviembre 7, 2025
  • Circuito inversor simple con CD4047 y ULN2003 – Convierte 12V DC en 230V AC fácilmente noviembre 5, 2025
  • Fin de soporte para Windows 10 ¿y ahora que? noviembre 2, 2025
  • Primeros pasos con Meshtastic octubre 29, 2025
  • Cómo crear tu propia app de reloj con temperatura para Android (sin anuncios) octubre 27, 2025
  • Como comunicar dos dispositivos sin la red movil octubre 25, 2025
  • Hoy acaban de apagar Movistar Home ¿y ahora que? octubre 23, 2025
  • Resucitando un LG Optimus Hub E510 en 2025: cuando solo el viejo KDZFWUPD salva la situación octubre 22, 2025
  • Windows 10 Ya No Tiene Soporte: ¿Qué Hacer Ahora? octubre 17, 2025
  • Integración Home Assistant con Alexa octubre 12, 2025
  • ¿Existe algún enchufe inteligente que pueda ser controlado por un script ? octubre 5, 2025
  • Movistar Home llega a su fin: ¿qué podemos hacer ahora con él? septiembre 27, 2025
  • ¿Existen medidores de tensión arterial que no usan bomba (pera de inflado) tradicional? septiembre 24, 2025
  • Replicar en W11 un entorno python de Ubuntu septiembre 7, 2025
  • Introducción a ESPHome: guía para principiantes agosto 28, 2025
  • Navegar en Android Auto sin conexión agosto 8, 2025
  • Como solucionar el problema del acceso a WhatsApp desde Android Auto agosto 3, 2025
  • Problemas con el parpadeo en un viejo monitor LCD julio 27, 2025

Categorías

  • Android
  • Arduino
  • audio y video
  • Bloging
  • bricolaje
  • cloud computing
  • comunicaciones e infraestructura de TI
  • desarrollo de aplicaciones
  • DISEÑO
  • Domotica
  • electronica de consumo y de entretenimiento
  • Electronica de Potencia
  • electronica del automovil
  • Electronica General
  • energia
  • ESP32
  • gadgets
  • impresoras 3d
  • informatica
  • Innovación
  • IoT
  • linux
  • M2M
  • noticias tecnológicas
  • ofimatica
  • open hw
  • open source
  • PC's
  • Raspberry
  • reciclaje
  • reparaciones
  • sistemas operativos
  • Utilidades y SW

Este blog en imagenes

espejonew
circuito modif
2015-10-04_23h45_27
uso del osci
sensordehumo
portada libro

Etiquetas

Apple Arduino Bicicleta Electrica clon de raspbery esp8266 Google impresion 3d Instrumentacion Internet Multimedia Netduino Orange pi Python raspberry barata seguridad infromatica Smartphone smartwatches Windows 7 windows 8 windows 10

Aviso legal

Soloelectronicos.com publica sus contenidos bajo licencia Creative Commons y cumple con la legislación vigente. Para más detalles consulte por favor el documento de aviso legal, política de privacidad y política de enlaces de afiliación.

Todas las entradas desde 2008

  • diciembre 2025
  • noviembre 2025
  • octubre 2025
  • septiembre 2025
  • agosto 2025
  • julio 2025
  • junio 2025
  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • octubre 2024
  • septiembre 2024
  • agosto 2024
  • julio 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • septiembre 2022
  • agosto 2022
  • julio 2022
  • junio 2022
  • mayo 2022
  • abril 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • junio 2021
  • mayo 2021
  • abril 2021
  • marzo 2021
  • febrero 2021
  • enero 2021
  • diciembre 2020
  • noviembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • julio 2020
  • junio 2020
  • mayo 2020
  • abril 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • diciembre 2019
  • noviembre 2019
  • octubre 2019
  • septiembre 2019
  • agosto 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • marzo 2019
  • febrero 2019
  • enero 2019
  • diciembre 2018
  • noviembre 2018
  • octubre 2018
  • septiembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • abril 2018
  • marzo 2018
  • febrero 2018
  • enero 2018
  • diciembre 2017
  • noviembre 2017
  • octubre 2017
  • septiembre 2017
  • agosto 2017
  • julio 2017
  • junio 2017
  • mayo 2017
  • abril 2017
  • marzo 2017
  • febrero 2017
  • enero 2017
  • diciembre 2016
  • noviembre 2016
  • octubre 2016
  • septiembre 2016
  • agosto 2016
  • julio 2016
  • junio 2016
  • mayo 2016
  • abril 2016
  • marzo 2016
  • febrero 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • octubre 2015
  • septiembre 2015
  • agosto 2015
  • julio 2015
  • junio 2015
  • mayo 2015
  • abril 2015
  • marzo 2015
  • febrero 2015
  • enero 2014
  • diciembre 2013
  • noviembre 2013
  • octubre 2013
  • septiembre 2013
  • agosto 2013
  • julio 2013
  • junio 2013
  • mayo 2013
  • abril 2013
  • marzo 2013
  • febrero 2013
  • enero 2013
  • diciembre 2012
  • noviembre 2012
  • octubre 2012
  • septiembre 2012
  • agosto 2012
  • julio 2012
  • mayo 2012
  • abril 2012
  • febrero 2012
  • enero 2012
  • noviembre 2011
  • septiembre 2011
  • agosto 2011
  • julio 2011
  • junio 2011
  • abril 2011
  • marzo 2011
  • febrero 2011
  • enero 2011
  • diciembre 2010
  • enero 2010
  • diciembre 2009
  • septiembre 2009
  • agosto 2008
  • julio 2008

Este blog es miembro de Paperblog

Paperblog

Miembro bloggers.net

Soloelectronicos

Soloelectronicos
Feed de Entradas
  • Conexión rápida de una pantalla OLED a un ESP32
  • Mucho cuidado con circuitos mal diseñados para obtener una mayor corriente
  • Emulación Zumo de sonidos con ATmega
  • Emulación de Zumo32U4 con un Arduino
  • Algunas herramientas poco conocidas de Windows

Últimos comentarios

  1. Avatar de miniPcs
    miniPcs en ¿Existe algún enchufe inteligente que pueda ser controlado por un script ?noviembre 28, 2025

    Excelente artículo sobre enchufes inteligentes controlables por script. Ideal para automatizar tareas y personalizar el hogar conectado.

  2. Avatar de thurderon
    thurderon en Como comunicar dos dispositivos sin la red moviloctubre 29, 2025

    Muy interesante

  3. Avatar de soloelectronicos
    soloelectronicos en Movistar Home llega a su fin: ¿qué podemos hacer ahora con él?octubre 25, 2025

    Puede correr Raspbian insertando la imagen en un usb que hay que soldar en la placa y con una memoria…

  4. Avatar de soloelectronicos
    soloelectronicos en Movistar Home llega a su fin: ¿qué podemos hacer ahora con él?octubre 25, 2025

    En github hay bastantes ideas, pero no obstante próximamente intentare publicar como intentar sacarle el maximo partido

  5. Avatar de Alberto Pérez Samartín
    Alberto Pérez Samartín en Movistar Home llega a su fin: ¿qué podemos hacer ahora con él?octubre 24, 2025

    Hola, soy uno de los que Movistar ha dejado plantado con el Home y me da rabia tener un aparato…

Crea un blog o una web gratis con WordPress.com.
Privacidad y cookies: este sitio utiliza cookies. Al continuar utilizando esta web, aceptas su uso.
Para obtener más información, incluido cómo controlar las cookies, consulta aquí: Política de cookies
  • Suscribirse Suscrito
    • Soloelectronicos.com
    • Únete a otros 872 suscriptores
    • ¿Ya tienes una cuenta de WordPress.com? Inicia sesión.
    • Soloelectronicos.com
    • Suscribirse Suscrito
    • Regístrate
    • Iniciar sesión
    • Denunciar este contenido
    • Ver el sitio en el Lector
    • Gestionar las suscripciones
    • Contraer esta barra
 

Cargando comentarios...
 

Debe estar conectado para enviar un comentario.

    %d