还在为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.py
2.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_names
3.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自助搜索查找及下载脚本问世!相关推荐
- 搜索很久_装了SSD你还需要这个软件才更快,搜索查找文件数据从此不再等待
在速度性能方面,HDD和SSD相比简直是云泥之别.一个7200转的HDD读写速度才最多可达200MB/S,15000转也才勉强能达到300M/S.而且HDD,速度要快,转速得快,转速越快,越是吵人.而 ...
- pip 安装tensorflow.whl包出错 PermissionError: [Errno 13] Permission denied:
pip install D:\tensorflow-1.5.0-cp35-cp35m-win_amd64.whl 错误信息 Exception: Traceback (most recent call ...
- pip安装tensorflow由于网速不好一直下载中断的问题解决
一.问题分析 最近在安装tensorflow时电脑网速一直不好,于是便报错: pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnect ...
- 编程猫海龟编辑器(python)_海龟编程猫下载 海龟编程猫编辑器 v2.0 安装免费版(附使用教程) 64位 下载-脚本之家...
编程猫海龟编辑器是由编程猫专为少儿所开发的一款Python编辑器,扩展功能非常强大,且支持硬件编程,可以一键安装第三方库,主要通过搭积木的方式让孩子们来学习Python,可充分提高他们的学习兴趣.在这 ...
- python3.9安装_Python 3.9下载 Python 3.9.0 for Windows 官方安装正式版 32位/64位 下载-脚本之家...
Python 3.9.0是Python编程语言的最新主要版本,它包含许多新功能和优化.这是Windows上默认为64位安装程序的Python的第一个版本,同时Python 3.9不支持Windows ...
- python︱模块加载(pip安装)以及pycharm安装与报错解决方式
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 准备放下R开始学python,真是痛苦,因为找 ...
- python安装依赖包经常出错怎么办_Python 下载依赖包环境经常失败超时解决方法...
人生苦短,我用python!为什么很多人喜欢用python,因为包多呀,各种调包.但是调包有的时候也调的闹心,因为安装包不是失败就是很慢,很影响自己的工作进度,这里给出一个pip快速安装工具包的办法, ...
- pip安装库包以及.whl库包、.tar.gz库包具体方式
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 pip安装库包以及.whl库包..tar.gz库包具体方式 文章目录: 1 pip安装库包 2 安装 .whl库包文件 ...
- 如何制作并使用python发布的模块压缩包和whl包,并进行pip安装和使用教程,加上传Pypi,上传之后又如何增删whl项目
如何制作并使用python发布的模块压缩包和whl包,并进行pip安装和使用教程 0 对于python中包概念的理解 一 创建setup.py文件 # 打包成模块压缩包 from distutils. ...
最新文章
- int(1) 和 int(10) 的区别?很多老程序都理解错了!
- WebView + jQuery
- JavaScript 读书笔记(二)— Date类型
- 未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集...
- Qt 实现串口终端控制台,适配RT-Thread的FinSH控制台功能(提供qt源码)
- CRC-16校验C#代码
- c++游戏代码坦克大作战_一红一蓝多种模式的双人小游戏:红蓝大作战
- cakephp 1.3 Controller
- 将jQuery的复选框设置为“已选中”?
- 大气辐射示意简单图_地理笔记 | N21 自然地理——大气的组成与垂直分层
- java 加入音乐_如何实现java插入背景音乐
- 被奉为经典的「金字塔原理」,教给我们哪些PPT写作技巧?
- 华为安装gsm框架_华为Mate20手机怎么下载安装谷歌服务助手,GMS框架安装教程
- 【计算机图形学】Liang-Barsky裁剪算法(C++实现)
- mysql特性—自适应哈希索引AHI
- Linkin-1.0.0提交spark任务到HDP环境报错:failed to request external resource provider
- web测试----死链检查(Xenu)
- HDU 6461 hzy 和zsl 的生存挑战(博弈)
- Html 使用svg图标、iconfont的使用方法
- Windows漏洞修复服务器,三种Windows服务器SSL/TLS的安全漏洞以及其补救方法