前陣子有個(gè)一起學(xué)習(xí)python的小伙伴在使用pip安裝包的時(shí)候出現(xiàn)了報(bào)錯(cuò)?ValueError: check_hostname requires server_hostname
?。那么為什么會(huì)出現(xiàn)這個(gè)報(bào)錯(cuò)呢?如何解決這個(gè)報(bào)錯(cuò)呢?接下來(lái)就讓小編來(lái)教你如何解決這個(gè)pip報(bào)錯(cuò)。
報(bào)錯(cuò)代碼
解決方案
在網(wǎng)上流傳著兩種解決方案,小編這里記錄下,如果一種方案不行的話可以嘗試另一種:
檢查你的包版本
小編翻遍了相關(guān)問(wèn)題的很多解決方案,大部分都是說(shuō)這個(gè)包版本有問(wèn)題,需要降版本安裝,也有一些小伙伴降版本安裝后就解決了,但小編覺(jué)得這個(gè)方案并不是正確的方案,只能說(shuō)可能有其他錯(cuò)誤碰巧也報(bào)這個(gè)錯(cuò)誤代碼,然后碰巧可以解決吧?
檢查你的代理
有部分用戶說(shuō)可能是代理有問(wèn)題,關(guān)閉代理即可。小編的小伙伴嘗試了這個(gè)方法后就可以運(yùn)行了,這應(yīng)該是正確的方法。
其實(shí)由報(bào)錯(cuò)的內(nèi)容就可以知道,pip要求你檢查你的host name,那就是你的主機(jī)地址有問(wèn)題或者訪問(wèn)地址有問(wèn)題。
分析
出現(xiàn)這個(gè)錯(cuò)誤的原因是使用了代理,由于總所周知的原因,有些外網(wǎng)需要一些特殊手段才能訪問(wèn),而要訪問(wèn)這些網(wǎng)站就需要使用代理,小編的小伙伴當(dāng)時(shí)就是代理沒(méi)有關(guān)掉,所以在pip的時(shí)候才會(huì)報(bào)錯(cuò)。
為什么使用代理會(huì)出現(xiàn)這樣的錯(cuò)誤呢,小編找到了蛛絲馬跡:pip的較新的版本有這樣的一個(gè)要求,就是標(biāo)記對(duì)pip倉(cāng)庫(kù)的信任,或者使用https進(jìn)行數(shù)據(jù)傳輸(類(lèi)似的問(wèn)題小編在學(xué)習(xí)linux的時(shí)候也遇到過(guò))。而使用代理會(huì)導(dǎo)致pip認(rèn)為你請(qǐng)求的倉(cāng)庫(kù)不是安全的,所以安裝失敗,所以解決方法就是關(guān)閉代理,或者在代理中設(shè)置相關(guān)內(nèi)容(觸及小編知識(shí)盲區(qū),小伙伴們可以去看看其他小編有沒(méi)有介紹代理使用的)。
小結(jié)
以上就是pip報(bào)錯(cuò)?ValueError: check_hostname requires server_hostname
?的解決方案,更多pip使用上的問(wèn)題可以關(guān)注W3Cschool。