一、背景

公司一小伙子反馈在内网机器上通过代理,还是安装不了bs4;于是乎,作为菜鸡的我开始排查。一直认为是网络和代理问题,所以关注点一直放在网络和安装包上;在网上搜索到,主要是以下问题:
1)更新apt-get update,再安装;
2)pip的代理有问题,一直再排查代理
3)是安装bs4,不是beautifulsoup4
 
而自己一直在纠结apt-get源的升级,怎么升都升不上;换了各种源/etc/apt/source.list,也没用。最后觉得可能自己对bs4这个东西不熟悉,还是好好的来了解学习一下,再来解决这个问题;于是乎找到了它的官网。em....;好家伙,一打开就看到了在最新版的Ubuntu下如何安装bs4。整个时间直到解决这个问题前前后后加起来用了一天。
 

二、总结

1)有问题先查官网
2)别人的答案不一定适用于你的问题,比如我的版本是Ubuntu20,而网上的答案都是针对与Ubuntu18的
3)别人给你反馈问题的时候,别人给你的只是他对这个问题的猜想,你得要他提供事实,然后根据自己的判断解决问题;比如这里别人跟我反馈是代理和网络的问题,我就一直往这个方向上去解决,结果完全不是。
 

三、报错信息

root@xxxx:~# pip install bs4
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', error('Tunnel connection failed: 403 Forbidden',))': /simple/bs4/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', error('Tunnel connection failed: 403 Forbidden',))': /simple/bs4/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', error('Tunnel connection failed: 403 Forbidden',))': /simple/bs4/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', error('Tunnel connection failed: 403 Forbidden',))': /simple/bs4/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', error('Tunnel connection failed: 403 Forbidden',))': /simple/bs4/
ERROR: Could not find a version that satisfies the requirement bs4 (from versions: none)
ERROR: No matching distribution found for bs4

四、正确的方式

#Python2安装
apt-get install -y python-bs4 #Python3安装
apt-get install -y python3-bs4

五、测试

 
1)输入一段文档
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p> <p class="story">...</p>
"""
2)打印
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser') print(soup.prettify())
会输出一段格式好的段落
 

六、apt-get 安装与pip安装的区别

pip:用于直接从PyPI下载和安装软件包。PyPI由Python Software Foundation托管。这是一个专门的软件包管理器,仅处理python软件包。
apt-get:用于从Canonical托管的Ubuntu存储库中下载和安装软件包。用来安装软件,更新源;只会安装最新版本的包,是系统级别的包。
 

七、apt-get相关命令

apt-cache search package   #搜索包
apt-cache show package #获取包的相关信息,如说明、大小、版本等
apt-get install package #安装包
apt-get install package --reinstall #重新安装包
apt-get -f install #强制安装
apt-get remove package #删除包
apt-get remove package - - purge #删除包,包括删除配置文件等
apt-get autoremove #自动删除不需要的包
apt-get update #更新源
apt-get upgrade #更新已安装的包
apt-get dist-upgrade #升级系统
apt-get dselect-upgrade #使用 dselect 升级
apt-cache depends package #了解使用依赖
apt-cache rdepends package #了解某个具体的依赖
apt-get build-dep package #安装相关的编译环境
apt-get source package #下载该包的源代码
apt-get clean && sudo apt-get autoclean #清理下载文件的存档
apt-get check #检查是否有损坏的依赖
官网:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/
 

八、写在最后

李先生(Lemon),高级运维工程师(自称),SRE专家(目标)。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID:Leeeee_Li)。

Ubuntu20.4 bs4安装的正确姿势的更多相关文章

  1. 【webpack结合React开发环境配置】React开发环境配置之Webpack结合Babel8.x版本安装的正确姿势(Webpack最新版4.x结合Babel8.x环境配置步骤)

    1. 安装cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org[使用淘宝镜像]2. 初始化package.json文件c ...

  2. 在Linux(ubuntu server)上面安装NodeJS的正确姿势

    上一篇文章,我介绍了 在Windows中安装NodeJS的正确姿势,这一篇,我们继续来看一下在Linux上面安装和配置NodeJS. 为了保持一致,这里也列举三个方法 第一个方法:通过官网下载安装 h ...

  3. Ubuntu 解决wifi无法打开的问题 安装NVIDIA显卡驱动的正确姿势

    游戏本型号Y7000 win10 Ubuntu16.04双系统 解决wifi无法打开的问题 解决方法: 1.打开终端输入:rfkill list all 出现如下提示::       可以看到,优先级 ...

  4. 程序员取悦女朋友的正确姿势---Tips(iOS美容篇)

    前言 女孩子都喜欢用美图工具进行图片美容,近来无事时,特意为某人写了个自定义图片滤镜生成器,安装到手机即可完成自定义滤镜渲染照片.app独一无二,虽简亦繁. JH定律:魔镜:最漂亮的女人是你老婆魔镜: ...

  5. 使用 win10 的正确姿势

    17年9月初,写了第一篇<使用 win10 的正确姿势>,而现在半年多过去,觉得文章得更新一些了,索性直接来个第二版吧. -----2018.3.24 写 一. 重新定义桌面 我的桌面: ...

  6. 使用 win10 的正确姿势 (第二版)

    文章为本人原创,转载请注明出处,谢谢. 17年9月初,写了第一篇<使用 win10 的正确姿势>,而现在半年多过去,文章更新了一些,主要是桌面的变化. 一. 重新定义桌面 我的桌面: 将桌 ...

  7. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...

  8. 59.phpstudy升级Mysql的正确姿势

    phpstudy升级Mysql的正确姿势 phpstudy很糟心,不能选择mysql的版本,所以就强制升级. 下载mysql 首先要到官网上去下载你想要的mysql版本. 下载网址:Mysql官网地址 ...

  9. 调用 TBrowseForFolder 的正确姿势

    [教程]调用 TBrowseForFolder 的正确姿势 2017-08-22 • C++ Builder.Delphi.教程 • 暂无评论 • swish •浏览 562 次 TBrowseFor ...

随机推荐

  1. java 常见OPTS参数的含义

    1. -XX:MaxPermSize=256m -XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配 2. java.awt.headless Headless模式是系统的 ...

  2. .Net之简单通知服务

    开篇语 这两天看见有大佬分享使用钉钉和企业微信的机器人来做通知报警,然后我想到了我使用的另一个第三方软件捷易快信(可能大家都不知道这个东西,我也忘了我最开始是咋知道的),该服务的优点是可以通过微信进行 ...

  3. ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测

    ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测 STD: Sparse-to-Dense 3D Object Detector for Point Cloud 论文链 ...

  4. ARM系统架构

    ARM系统架构 一.ARM概要 ARM架构,曾称进阶精简指令集机器(Advanced RISC Machine)更早称作Acorn RISC Machine,是一个32位精简指令集(RISC)处理器架 ...

  5. ISP算法高水平分析(上)

    ISP算法高水平分析(上) 一.ISP基本框架及算法介绍 ISP是Image Signal Processor的缩写,全称是影像处理器.在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始 ...

  6. A100 Tensor核心可加速HPC

    A100 Tensor核心可加速HPC HPC应用程序的性能需求正在迅速增长.众多科学研究领域的许多应用程序都依赖于双精度(FP64)计算. 为了满足HPC计算快速增长的计算需求,A100 GPU支持 ...

  7. ASIC设计-终极指南

    ASIC设计-终极指南 ASIC Design – The Ultimate Guide ASIC设计-终极指南 ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解 ...

  8. 【NX二次开发】Block UI 集列表

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  9. 【NX二次开发】基准特征

    创建基准特征UF_MODL_create_fixed_daxis 创建一个固定的基准轴特征,方向由点1指向点2UF_MODL_create_fixed_dplane 创建一个固定的基准面特征,输入点和 ...

  10. 【题解】Luogu p3478 [POI2008]STA-Station 动态规划

    题目描述 给出一个$N$个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 输入输出格式 输入格式 第一行一个数$n$,表示树上共有$n$个点接下来$n-1$行,表示$n-1$条边;每行 ...