IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> NILMTK安装的血泪征程 -> 正文阅读

[Python知识库]NILMTK安装的血泪征程

目录

1. 前言

2. 尝试1--遵照官方指示--失败

3. 尝试2--失败

3.1 下载代码包

3.2 安装

3.3 测试

4. 尝试3--失败

4.1 安装

4.2 REDDToH5测试

5. 尝试4--成功?


1. 前言

????????开始入坑NILM。

????????在浩如烟海的文献、博客中遨游(懵逼)了几圈后,发现概念装了一脑袋然而有如浮在云端雾里看花水中望月并没有什么卵用,还是得敲敲代码、看看数据、做做分析才能得到直观认识。所以决定开始整点脚踏实地的东西,自然就是从nilmtk的安装开始了。

????????开源的东西好是好,就是要把环境整齐活了门槛太高了,对小白太不友好了。

????????包括官方指示在内,介绍nilmtk安装的博文在网上一搜也是一大把(从今天以后又增加一篇了),但是你永远不要太期待照着别人博文中说的去做就能一帆风顺—那是可遇而不可求的事情。今天折腾了大半天在几乎绝望的情况下通过无头苍蝇式的尝试最终居然碰到了一个可行的方案,感觉像是一个奇迹。就此做一个总结,给自己留个纪念,也期望能给其他未来将要入坑的伙伴们一点点帮助。但是。。。需要记住的是,以下所描述的并不保证是一个正确的方案,甚至不能保证是一个无害的方案。也许相比最后的解决方案的细节本身,搜索和解决问题的那种折磨而又必须死磕到底直到最后达成坚持就是胜利的过程本身对后来者更有参考意义。

????????作业环境:Windows10,Anaconda

????????本次奋斗(折腾,煎熬)过程中参考了以下博文,在此表示感谢。

????????[1] https://blog.csdn.net/wwb1990/article/details/103905371

????????[2] https://blog.csdn.net/wwb1990/article/details/103911372

????????如果只想看最后怎么安装成功的话,直接翻到最后一章就可以了(但是并不建议这样做,过程可能比结果更有参考价值)。

2. 尝试1--遵照官方指示--失败

Ref: https://github.com/nilmtk/nilmtk/blob/master/docs/manual/user_guide/install_user.md

????????首先参考GitHub上以上官方链接的提示进行尝试。不多废话,以下就按照文中所示的步骤进行一步一步的操作。

?

?

?

????????出师未捷身先死。。。这个不意外,一上来就搞成了那是做梦。

????????But。。。在后面的尝试中发现下载的最新的git文件中的版本号是0.4.0,所以。。。是因为版本号指定不正确?可以这是官方的install guide告诉我用0.4.2的啊?!当然以上安装命令中将0.4.2改为0.4.1或者0.4.0依然是报告同样的错误。此路不通!可是这不通的理由让人不爽。

3. 尝试2--失败

????????接下来参照(https://blog.csdn.net/wwb1990/article/details/103905371)的说明进行尝试。仍然在上一节建立的nilmtk-env中进行安装。

????????因为是在新建的virtual-env中,所以很多工具都需要重新安装,首先需要安装的就是git。

3.1 下载代码包

????????安装完git了后执行以下两个命令:

????????git clone https://github.com/nilmtk/nilm_metadata/

????????git clone https://github.com/nilmtk/nilmtk.git

????????网络不稳定,不容易连接成功(报告下图所示错误,尝试了好几次终于clone成功)。还是直接从github上直接下载zip文件来得顺畅。不知道什么原因,不管了,反正下载的zip文件是一样的。

?

3.2 安装

????????进入nilm_metadata目录底下运行:python setup.py develop

????????进入nilmtk目录底下运行:python setup.py develop

????????看起来平安无事,毕竟没有报错。

3.3 测试

????????运行noestests告诉命令找不到。好吧,也不知道nose到底是个什么鬼,反正安装就对了。。。

????????conda install nose

????????安装完再次命令行执行nosetests,出错报告中看到说没有找到pandas…参考wwb1990-blog的说明一锅端了:

????????conda install --yes pip numpy scipy six scikit-learn pandas numexpr

????????安装完再次命令行执行nosetests。

????????这次报告没有找到networkx:ModuleNotFoundError: No module named 'networkx'

????????从此开启了无穷无尽的各种包的安装(关键吧,每次只报告一个找不到的包。。。),甚至还出现过有些包需要在fanqiang软件开启条件下才能安装,有些则需要关闭才能安装。不知道有什么必然性,是因为我前面已经搞乱了才会出现这些幺蛾子吗?

????????。。。

????????最蛋疼的是下面这个:

?????????安装:conda install tables

????????Conda不行那就改用pip安装:pip install tables

????????报出一堆不明所以的错误。。。

????????病急乱投医。。。参考medium.com上某洋博文的建议更新pip:

????????python -m pip install --upgrade pip

????????无效,运行输出显示pip是最新版本

????????仔细看了看有‘check_hostname’的错误,难道是?切断fanqiang软件试了试,果然开始Downloading(不禁为自己的机智而叹服)。燃鹅,又出新的幺蛾子了。?

?

查了查,了解到hdf5.lib是h5py模块的库文件,管他niang的,安装。。。

conda install h5py

安装完毕后再次尝试tables的安装,依然出错。。。网上兜兜转转发现一个叫pytables,这是不是tables的替代品呢,好吧,试试看:

conda install pytables

安装成功(如果pytablestables的替代品的,那前面为什么要提示安装tables而不是直接说安装pytables呢?)后再次运行nosetests: Ran 0 tests云云,就是说没有运行任何测试,不明所以。是不是nilmtk没有正确安装呢?跑到nilmtk目录底下重新运行一下python setup.py install(发现这次又要把fanqiang软件打开才行。。。蛋疼啊)。

报告无法找到”png.lib”,内心是崩溃的,有完没完啊。。。

??

4. 尝试3--失败

4.1 安装

????????既然在virtual-env中安装整出这么多幺蛾子,心想还是回到base environment下试试吧。重来一边以下操作:????????

cd nilm_metadata
python setup.py develop
cd ..
cd nilmtk
python setup.py develop

????????没有报告什么问题,执行nosetests进行测试,还是报告“Ran 0 tests”云云。

?????????虽然执行nosetests没有实现有效的单体测试,但是毕竟也没有像上一章那样报一堆错误,所以决定先放过,直接前进到尝试性的数据转换。如果能正确地进行数据转换,总可以证明安装是正确的吧。

4.2 REDDToH5测试

????????参考[2],下载REDD数据,并复制修改脚本REDDToH5.py如下:

from nilmtk.dataset_converters import convert_redd

convert_redd(r'D:\NILMD\REDD\low_freq',r'D:\NILMD\REDD\low_freq\redd_low.h5')

????????运行后发现报告以下错误:

????????TypeError: put() got an unexpected keyword argument 'expectedrows'

????????一查原来在github(https://github.com/nilmtk/nilmtk/issues/858)上已经有人报告了这个错误,并且有人给出了解决方案,心想这下总稳了。。。然而并没有,好事多磨。

5. 尝试4--成功?

????????从以上链接可以看到这个事情的讨论经过如下:

????????首先,solegalli报告了这个错误

????????然后,orestislampridis附和了这个问题

????????第三,solegalli生成找到了一个solution

????????第四,simplyoptimisticonly?说他按照solegalli的方法做依然不行

????????第五,作为Collaborator的PMeira站出来说不建议solegalli所提出的“歪门邪道”,并且生成已经更新了版本到0.4.1(然而,如前所述,how can get version 0.4.1和0.4.2?),并且给出了另外的建议。

????????第六,simplyoptimisticonly声称找到了正确的解决方案,并贴出了成功转换REDD数据的运行结果

????????经过尝试后,我发现首先PMeira(按道理应该是代表“官方”)建议不成立,其一是找不到ver0.4.1,其二是我的Anaconda中的pandas当前版本就是0.25.3,可是就是不行。

????????其次,simplyoptimisticonly的解决方案我没有看懂(也许这个才是正解?),对我没有意义。没有心情再去摸索什么yml啊什么的—也许等我歇歇后缓过劲来了会再试一试。

????????抱着死马当做活马医的态度,我决定试一试solegalli的方案。在conda base environment下:

????????Step1 进到nilmtk目录,执行(具体什么含义后面再回头学习)“pip install -e .

……

?

????????Step2 执行“pip install 'git+https://github.com/nilmtk/nilm_metadata.git#egg=nilm_metadata'

????????然而,执行step2报告错误如下:

????????算了算了,到nilm_metadata目录下也执行“pip install -e .”一下如何?

????????这次安装成功了。?

????????执行nosetests依然不对,已经麻木了,爱咋咋地吧。。。

????????最后尝试一次执行REDD数据转换。。。成了!不枉这大半天的折腾。。。看到了simplyoptimisticonly所贴出的标志转换成功的输出结果。?

【总结】?

????????无力吐槽。。。

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:02:32  更:2021-08-29 09:03:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:21:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码