最近在新公司電腦上建置python環境的時候,現在python更新到3.9版本了,然後下載下來之後,配好環境變數,然後安裝requests外掛,然後寫一個簡單的程式碼發送請求,結果發現居然報錯了:
1 2 | import requests res = requests.get(url="https://blog.csdn.net/liboshi123/", verify=False) |
執行上面的程式碼的時候,發現報了下面的錯誤:
1 2 | raise ValueError("check_hostname requires server_hostname") ValueError: check_hostname requires server_hostname |
報錯的原因:
這個其實跟選用的python版本的關係不大,主要原因是因為每次使用 pip install 命令下載外掛的時候,下載的都是最新的版本,例如下載requests外掛,它會自動的將依賴的urllib3這個外掛也安裝,然後依賴的外掛版本太高,就導致了這個報錯的問題。
所以說,一般遇到這種莫名其妙的問題的時候,可以先去看一下是不是外掛的問題導致的,解決措施就是 將urllib3外掛的版本降低就可以,當然,直接在安裝requests外掛的時候,選擇用低版本也可以解決這個問題。例如用下面的命令指定版本進行安裝:
1 2 3 | pip install requests==2.20 或者使用下面的命令降低版本: pip install urllib3==1.25.8 |
這種類似的問題,在使用一些框架的時候經常會遇到,例如有的小夥伴在學習django,然後照著別人部落格寫的文章操作,最後報錯,很有可能就是外掛的版本導致的。
另外,線上安裝外掛時,如果外掛下載過慢,或者報錯的話,可以在外掛的命令後面加上 -i 指定外掛安裝的源。
1 | pip install 外掛名稱 -i http://mirrors.aliyun.com/pypi/simple |
有時候報外掛找不到的話,就換一個源試試。
不想每次都指定源進行安裝的話 ,那就在使用者名稱下資料夾下建一個pip的資料夾,然後新建pip.ini的設定檔,寫入下面的內容就行(具體的源可以自己選擇):{建立這個設定檔的存放位置有很多種方式都可以,感興趣的可以自己去試試,例如pip所在目錄下,或者%APPDATA%目錄下去新建資料夾。}
1 2 3 4 | [global] index-url = http://mirrors.aliyun.com/pypi/simple [install] trusted-host=mirrors.aliyun.com |
另外,有些外掛透過上面的線上方式就是容易出現報錯的,可以嘗試用離線安裝的方式去安裝外掛,去網上下載whl格式的檔案進行安裝,例如,可以在下面的連結下下載:
whl格式外掛:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
pip install xxx.whl
官網下載外掛:
https://pypi.org/
解壓後,在目錄執行:python setup.py install
往期推薦
Postman教學-變數、集合的基本使用
Postman教學-透過設定代理/攔截器捕獲請求訊息
Postman教學-Response相關的基本操作
Postman教學-Send Requests相關的基本操作
Postman教學-介面測試流程&發送第一個請求
Postman+Newman+Git+Jenkins實現介面自動化測試持續整合
2020年小博公眾號文章集錦