python解決ModuleNotFoundError No module named 'HTMLTestRunner'
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))
再次執行,程式碼執行成功,無異常!