python解决ModuleNotFoundError No module named 'HTMLTestRunner'

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37579123/article/details/84900157

HTMLTestRunner是Python标准库的unittest模块的扩展,无法通过pip安装;

py2解决方法:

从http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py并将文件放到python2安装目录的Lib下,然后再次运行文件,可成功运行!

py3解决方法:

总结:

第94行,将import StringIO修改成import io;

第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO();

第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:

第766行,将uo = o.decode(‘latin-1‘)修改成uo = e;

第775行,将ue = e.decode(‘latin-1‘)修改成ue = e;

第631行,将print >> sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTime Elapsed: %s‘ % (self.stopTime-self.startTime))

下面是踩坑过程:

从http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py并将文件放到python3安装目录的Lib下,然后再次运行文件

在HTMLTestRunner的94行中,是使用的StringIO,但是Python3中,已经没有StringIO了。取而代之的是io.StringIO。所以将此行修改成import io

在HTMLTestRunner的539行中,self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

继续执行代码,发现报异常如下:

前往644行修改代码:if cls not in rmap

继续执行代码,又发现报异常如下:

前往769行修改代码: uo = e ; 同时将776行修改代码:ue = e

继续执行,发现还报异常:

前往633行修改代码:print (sys.stderr, '\nTime Elapsed: %s' % (self.stopTime - self.startTime))

再次执行,代码运行成功,无异常!

猜你喜欢

转载自blog.csdn.net/weixin_37579123/article/details/84900157