解决Python模块报错:ModuleNotFoundError: No module name 'StringIO'
生活随笔
收集整理的這篇文章主要介紹了
解决Python模块报错:ModuleNotFoundError: No module name 'StringIO'
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
下面是我在學(xué)習(xí)中遇到的問題,給大家分享一下: ''' 這里是測試代碼 '''
#?coding?=?utf-8
from?selenium?import?webdriver
from?selenium.webdriver.common.by?import?By
from?selenium.webdriver.common.keys?import?Keys
from?selenium.webdriver.support.ui?import?Select
from?selenium.common.exceptions?import?NoSuchElementException
import?unittest,?time,?re
import?HTMLTestRunner
class?Baidu(unittest.TestCase):
????def?setUp(self):
????????self.driver?=?webdriver.Chrome()
????????self.driver.implicitly_wait(30)
????????self.base_url?=?"http://www.baidu.com
"
????????self.verificationErrors?=?[]
????????self.accept_next_alert?=?True
????#測試用例
????def?test_baidu_search(self):
????????driver?=?self.driver
????????driver.get(self.base_url?+?"/")
????????driver.find_element_by_id("kw").send_keys("selenium")
????????driver.find_element_by_id("su").click()
????????time.sleep(2)
????????driver.close()
????def?tearDown(self):
????????self.driver.quit()
????????self.assertEquals([],?self.verificationErrors)
if?__name__?==?"__main__":
????#定義一個單元測試容器
????testunit?=?unittest.TestSuite()
????#將測試用例加入到測試容器中
????testunit.addTest(Baidu("test_baidu_search"))
?
????#定義個報(bào)告存放路徑,支持相對路徑
????filename?=?"E:\\result.html"
????fp?=?file(filename,?"wb")
2,檢查HTMLTestRunner.py?文件:
!)點(diǎn)擊藍(lán)色部分,直接打開HTMLTestRunner.py文件,果然StringIO報(bào)錯了。
查閱資料,StringIO方法是Python里自帶的方法,那是哪里出問題了?HTMLTestRunner.py是自從網(wǎng)上下載別人寫好的文件, 難道這個文件出問題了?網(wǎng)上找了帖子,給的鏈接還是這個鏈接:http://tungwaiyip.info/software/HTMLTestRunner.html
去找來一些關(guān)于StringIO方法的資料,看到下面的資料時,恍然大悟,考慮應(yīng)該是Python版本的問題,程序沒有錯。
后來,找到帖子證明了這個問題,參考:https://blog.csdn.net/wodedipang_/article/details/80062160
“import?StringIO”改成“from?io?import?StringIO?”,運(yùn)行成功。
PS:我的Python版本是python 3.6的,import StringIO適用于python 2.X
總結(jié):有些問題,可能找不原因,但是就是報(bào)錯,這時想一下可能是
1)版本的問題,比如版本發(fā)生變化,有的方法不在適用,我們不可能每個版本都去學(xué)習(xí),每個版本都去找資料學(xué)習(xí),遇到 這類問題要思考是否是版本的問題,自己找資料解決
2)資源釋放的問。沒有報(bào)錯,就是沒有顯示內(nèi)容,這種問題可能跟資源釋放有問題,檢查資源是否關(guān)閉了。
_____________________________________________________________________________________________ 寫到這里就結(jié)束了,如果有什么疑問可以給我留言哦~
#?coding?=?utf-8
from?selenium?import?webdriver
from?selenium.webdriver.common.by?import?By
from?selenium.webdriver.common.keys?import?Keys
from?selenium.webdriver.support.ui?import?Select
from?selenium.common.exceptions?import?NoSuchElementException
import?unittest,?time,?re
import?HTMLTestRunner
class?Baidu(unittest.TestCase):
????def?setUp(self):
????????self.driver?=?webdriver.Chrome()
????????self.driver.implicitly_wait(30)
????????self.base_url?=?"http://www.baidu.com
"
????????self.verificationErrors?=?[]
????????self.accept_next_alert?=?True
????#測試用例
????def?test_baidu_search(self):
????????driver?=?self.driver
????????driver.get(self.base_url?+?"/")
????????driver.find_element_by_id("kw").send_keys("selenium")
????????driver.find_element_by_id("su").click()
????????time.sleep(2)
????????driver.close()
????def?tearDown(self):
????????self.driver.quit()
????????self.assertEquals([],?self.verificationErrors)
if?__name__?==?"__main__":
????#定義一個單元測試容器
????testunit?=?unittest.TestSuite()
????#將測試用例加入到測試容器中
????testunit.addTest(Baidu("test_baidu_search"))
?
????#定義個報(bào)告存放路徑,支持相對路徑
????filename?=?"E:\\result.html"
????fp?=?file(filename,?"wb")
?
1,先檢查BaiduReport.py?代碼,沒有檢查出問題,錯誤提示顯示第8行?import?HTMLTestRunner,檢查拼寫正確,估計(jì) 是引用文件HTMLTestRunner.py的問題。2,檢查HTMLTestRunner.py?文件:
!)點(diǎn)擊藍(lán)色部分,直接打開HTMLTestRunner.py文件,果然StringIO報(bào)錯了。
?
查閱資料,StringIO方法是Python里自帶的方法,那是哪里出問題了?HTMLTestRunner.py是自從網(wǎng)上下載別人寫好的文件, 難道這個文件出問題了?網(wǎng)上找了帖子,給的鏈接還是這個鏈接:http://tungwaiyip.info/software/HTMLTestRunner.html
去找來一些關(guān)于StringIO方法的資料,看到下面的資料時,恍然大悟,考慮應(yīng)該是Python版本的問題,程序沒有錯。
后來,找到帖子證明了這個問題,參考:https://blog.csdn.net/wodedipang_/article/details/80062160
“import?StringIO”改成“from?io?import?StringIO?”,運(yùn)行成功。
PS:我的Python版本是python 3.6的,import StringIO適用于python 2.X
總結(jié):有些問題,可能找不原因,但是就是報(bào)錯,這時想一下可能是
1)版本的問題,比如版本發(fā)生變化,有的方法不在適用,我們不可能每個版本都去學(xué)習(xí),每個版本都去找資料學(xué)習(xí),遇到 這類問題要思考是否是版本的問題,自己找資料解決
2)資源釋放的問。沒有報(bào)錯,就是沒有顯示內(nèi)容,這種問題可能跟資源釋放有問題,檢查資源是否關(guān)閉了。
_____________________________________________________________________________________________ 寫到這里就結(jié)束了,如果有什么疑問可以給我留言哦~
總結(jié)
以上是生活随笔為你收集整理的解决Python模块报错:ModuleNotFoundError: No module name 'StringIO'的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python常用魔法函数
- 下一篇: 关于python 中的__future_