还在为pip安装发愁?whl自助搜索查找及下载脚本问世!
0.導語
在學習Python的過程中,大家肯定會遇到pip安裝失敗的問題,要么是因為網速問題,要么是因為win系統上與vs綁定,必須要裝vs等一些系列問題,而這些問題有個很關鍵的解決辦法,那就是直接下載相應的whl包來安裝。
如果有一個能夠支持搜索查找及下載whl包的腳本,那是不是很棒哦,果不其然,可以做到,作者光城寫下這個腳本,并做了測試,今天來總結一下,歡迎大家star,fork,轉發,收藏本篇文章!
光城同學的源碼地址:
https://github.com/Light-City/AutoDownloadWhl
本次腳本我將它命名為:Whl自助搜索下載器
實現了如下功能:
支持檢索
支持查找
支持下載
單、多文件下載
2.如何使用及功能演示
2.1 如何使用
運行腳本需要:
requests、lxml、os庫
curl或axel命令
win系統的直接下載win版本的按照網上配置即可!
linux系統與mac系統可用yum 或 apt 或 brew等來進行安裝!
復制源碼地址并下載腳本,運行腳本即可:
python?AutoDownloadWhl.py2.2 功能演示
所有包信息展示
適應平臺whl包
多包下載
完整演示如下:
3.代碼詳解
3.1 封裝
封裝包地址與下載地址:
class?AutoDownWhl():def?__init__(self):#?包地址self.url?=?'https://www.lfd.uci.edu/~gohlke/pythonlibs/'#?下載地址self.base_url?=?'https://download.lfd.uci.edu/pythonlibs/r5uhg2lo/'#?模擬瀏覽器self.headers?=?{'User-Agent':?'Mozilla/5.0?(X11;?Linux?x86_64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/72.0.3626.96?Safari/537.36'}3.2 獲取選擇器與包名
解析源碼與獲取包名:
#?獲取選擇器與包名 def?getLib(self):raw_text?=?requests.get(self.url,?headers=self.headers).contentseletor?=?etree.HTML(raw_text)lib_names?=?seletor.xpath('//ul[@class="pylibs"]//li//strong//text()')return?seletor,?lib_names3.3 輸出所有包名
一行15個包名打印:
#?輸出所有包名def?print_AllLib(self,?lib_names):print('\n------------------共查找到'?+?str(len(lib_names))?+?'個包------------------\n')for?i?in?range(len(lib_names)):if?i?and?i?%?15?==?0:print('\n')print(lib_names[i],?end='?')3.4 搜索與下載
只摘取了核心代碼,下載采用調用系統命令curl與axel,請在自己的系統上安裝這兩個其中之一下載!
def?searchDown(self,?downloadMethod='axel'):#?此部分代碼只摘取核心部分if?int(lib_sequence)?<=?max:detail_name?=?detail_libs[int(lib_sequence)?-?1].strip().replace('?',?'-')download_url?=?self.base_url?+?detail_nameprint('\n\n輸入包名正確,下載地址:'?+?download_url?+?'\n')print("---------------------------------------開始下載---------------------------------------\n")if?downloadMethod?==?'curl':cmd?=?'curl?-O?%s'?%?download_urlelse:cmd?=?'axel?%s'?%?download_urlwhile?True:cmd_res?=?os.system(cmd)if?cmd_res?==?0:print('下載成功!\n')breakelse:print('下載失敗!\n')is_try?=?input('是否重試下載(y|n):?')if?is_try?==?'y'?or?is_try?==?'Y':continueelse:breakelse:print("\n?\033[1;31m?輸入序號不符合要求,請重新輸入!?\033[0m?\n")3.5 調用
采用axel下載:
dw?=?AutoDownWhl() dw.searchDown(downloadMethod='axel')請關注和分享↓↓↓?
機器學習初學者
QQ群:554839127
(注意:本站有6個qq群,加入過任何一個的不需要再加)
往期精彩回顧
良心推薦:機器學習入門資料匯總及學習建議(2018版)
黃海廣博士的github鏡像下載(機器學習及深度學習資源)
吳恩達老師的機器學習和深度學習課程筆記打印版
機器學習小抄-(像背托福單詞一樣理解機器學習)
首發:深度學習入門寶典-《python深度學習》原文代碼中文注釋版及電子書
科研工作者的神器-zotero論文管理工具
機器學習的數學基礎
機器學習必備寶典-《統計學習方法》的python代碼實現、電子書及課件
吐血推薦收藏的學位論文排版教程(完整版)
機器學習入門的百科全書-2018年“機器學習初學者”公眾號文章匯總
總結
以上是生活随笔為你收集整理的还在为pip安装发愁?whl自助搜索查找及下载脚本问世!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pandas练习题-提高你的数据分析技能
- 下一篇: 推荐:学习自然语言处理(NLP)的学习方