Python pip安装SSL证书错误
发布时间:2025-05-12 12:02:08 发布人:远客网络
一、Python pip安装SSL证书错误
1、问题描述:在尝试使用pip安装包时遇到错误,导致下载失败。
2、解决方案之一:在命令行中增加trust host字段,成功下载。
3、观察到默认路径中找不到ca证书,而cacert.pem文件却存在于Lib\site-packages\certifi文件夹中,推测ca证书可能丢失或路径查找错误。尝试修改pip默认的ca证书路径。
4、查找pip.ini文件,使用pip-v config list命令,未在多个路径中发现该文件。了解到默认存在pip.ini配置文件,推测该文件可能丢失。
5、解决办法:通过pip-v config list命令确认修改成功。现在,直接在命令行执行pip install xxx不再出现错误。
6、第二种解决方案:重新安装Python。
7、总结:通过修改pip配置或重新安装Python,可解决pip安装SSL证书时的错误问题。
二、python常用函数包有哪些
Urllib3是一个 Python的 HTTP客户端,它拥有 Python标准库中缺少的许多功能:
用来重试请求和处理 HTTP重定向的助手
six是一个是 Python 2和 3的兼容性库。这个项目旨在支持可同时运行在 Python 2和 3上的代码库。它提供了许多可简化 Python 2和 3之间语法差异的函数。
3、botocore、boto3、s3transfer、awscli
Botocore是 AWS的底层接口。Botocore是 Boto3库(#22)的基础,后者让你可以使用 Amazon S3和 Amazon EC2一类的服务。Botocore还是 AWS-CLI的基础,后者为 AWS提供统一的命令行界面。
S3transfer(#7)是用于管理 Amazon S3传输的 Python库。它正在积极开发中,其介绍页面不推荐人们现在使用,或者至少等版本固定下来再用,因为其 API可能发生变化,在次要版本之间都可能更改。Boto3、AWS-CLI和其他许多项目都依赖s3transfer。
pip是“Pip Installs Packages”的首字母递归缩写。
pip很容易使用。要安装一个包只需pip install<package name>即可,而删除包只需pip uninstall<package name>即可。
最大优点之一是它可以获取包列表,通常以requirements.txt文件的形式获取。该文件能选择包含所需版本的详细规范。大多数 Python项目都包含这样的文件。
如果结合使用pip与virtualenv(列表中的#57),就可以创建可预测的隔离环境,同时不会干扰底层系统,反之亦然。
python-dateutil模块提供了对标准datetime模块的强大扩展。我的经验是,常规的Python datetime缺少哪些功能,python-dateutil就能补足那一块。
Requests建立在我们的#1库——urllib3基础上。它让 Web请求变得非常简单。相比urllib3来说,很多人更喜欢这个包。而且使用它的最终用户可能也比urllib3更多。后者更偏底层,并且考虑到它对内部的控制级别,它一般是作为其他项目的依赖项。
近年来,几乎所有网站都转向 SSL,你可以通过地址栏中的小锁符号来识别它。加了小锁意味着与该站点的通信是安全和加密的,能防止窃听行为。
根据其 PyPI页面,idna提供了“对 RFC5891中指定的应用程序中国际化域名(IDNA)协议的支持。”
IDNA的核心是两个函数:ToASCII和ToUnicode。ToASCII会将国际 Unicode域转换为 ASCII字符串。ToUnicode则逆转该过程。在IDNA包中,这些函数称为idna.encode()和idna.decode()
YAML是一种数据序列化格式。它的设计宗旨是让人类和计算机都能很容易地阅读代码——人类很容易读写它的内容,计算机也可以解析它。
PyYAML是 Python的YAML解析器和发射器,这意味着它可以读写YAML。它会把任何 Python对象写成YAML:列表、字典,甚至是类实例都包括在内。
像上面的IDNA一样,这个项目也非常有用:
ASN.1类型和 DER/BER/CER编码(X.208)的纯 Python实现
所幸这个已有数十年历史的标准有很多信息可用。ASN.1是 Abstract Syntax Notation One的缩写,它就像是数据序列化的教父。它来自电信行业。也许你知道协议缓冲区或 Apache Thrift?这就是它们的 1984年版本。
Docutils是一个模块化系统,用来将纯文本文档处理为很多有用的格式,例如 HTML、XML和 LaTeX等。Docutils能读取reStructuredText格式的纯文本文档,这种格式是类似于 MarkDown的易读标记语法。
你可以用chardet模块来检测文件或数据流的字符集。比如说,需要分析大量随机文本时,这会很有用。但你也可以在处理远程下载的数据,但不知道用的是什么字符集时使用它。
rsa包是一个纯 Python的 RSA实现。它支持:
它既可以用作 Python库,也能在命令行中使用。
JMESPath,发音为“James path”,使 Python中的 JSON更容易使用。它允许你声明性地指定如何从 JSON文档中提取元素。
它是用于创建 Python包的工具。不过,其文档很糟糕。它没有清晰描述它的用途,并且文档中包含无效链接。最好的信息源是这个站点,特别是这个创建 Python包的指南。
像dateutils一样,这个库可帮助你处理日期和时间。有时候,时区处理起来可能很麻烦。幸好有这样的包,可以让事情变得简单些。
从 Python 3.2开始,python提供current.futures模块,可帮助你实现异步执行。futures包是该库适用于 Python 2的 backport。它不适用于 Python3用户,因为 Python 3原生提供了该模块。
使用 Colorama,你可以为终端添加一些颜色:
更多Python知识请关注Python自学网
三、Python常用的22个包,一定有你熟悉的!
在全球程序员的日常工作中,Python的使用场景丰富多样。我们从备受关注的 Python包开始,探索它们的流行度和实际应用。以下是过去一年在 PyPI下载量排名前22的 Python包,它们各具特色且广受欢迎:
作为 HTTP客户端,urllib3提供Python标准库未包含的高级功能,尽管并非urllib2的简单升级,但因其广泛依赖,requests包(#6)位居榜首。
six是一个跨Python 2和3的兼容性库,简化了不同版本间的语法差异,尤其在Python 2官方支持终止后,其重要性更加凸显。
3-7. botocore、boto3、s3transfer、awscli(合计22亿次下载)
这些库与 AWS服务紧密相关,如 Amazon S3和 EC2,botocore为它们提供底层支持,而boto3、awscli和s3transfer则是实际操作的工具包。
Pip是 Python的核心包安装器,用户依赖它来安装和管理软件包。
5. Python-dateutil(6.17亿次下载)
这个库增强了 datetime模块的功能,便于处理复杂的日期和时间操作。
基于 urllib3,Requests提供简单易用的 Web请求功能,比底层库更受终端用户青睐。
Certifi用于验证 SSL证书,确保网络安全,是众多项目信任的基础。
8-10. Idna、PyYAML、Pyasn1(合计16.04亿次下载)
Idna提供国际化域名支持,PyYAML处理 YAML数据,Pyasn1则是 ASN.1编码的 Python实现。
11-12. Docutils、Chardet(合计10.09亿次下载)
Docutils负责文档转换,Chardet用于字符集检测,两者在文档处理和数据解析中不可或缺。
13-15. RSA、JMESPath、Setuptools(合计14.76亿次下载)
RSA提供加密功能,JMESPath提供 JSON数据操作便捷性,Setuptools是包构建工具。
16-17. Awscli、Futures(合计7.83亿次下载)
Awscli与 AWS服务接口相关,Futures实现异步执行功能,Python 3用户无需额外安装。
18-20. Pytz、Colorama、Simplejson(合计7.44亿次下载)
Pytz管理时区,Colorama为终端添加颜色,Simplejson是 JSON处理的高效替代方案。
Boto3继承了 botocore的功能,专为 AWS服务提供便利。
尽管只列出了22个,但还有很多其他包同样重要,反映了用户群体的广泛需求。