pip安装软件包时的常见获取来源有哪些?
pip 安装运行原理与常用资源来源
pip 核心运行原理
pip 安装包时遵循以下核心流程:
- 首先从配置的包索引地址解析目标包的元数据,确认匹配当前系统、Python版本的最新可用版本
- 拉取对应版本包的下载链接,优先选择预编译的二进制包(
.whl格式),不存在则拉取源码包(.tar.gz等格式) - 下载包文件到本地缓存目录,校验文件哈希值避免被篡改
- 解析当前包的依赖列表,递归对每个依赖重复上述流程,所有依赖满足要求后,按顺序安装所有包
最常用的软件包来源
- PyPI 官方源:这是pip默认的首要拉取来源,绝大多数Python公开包都会上传到这里,所有包的元数据、发布版本、下载链接都存在这个源上,是最核心的访问地址
- 第三方镜像源:很多机构会搭建PyPI的镜像站,比如国内的阿里、清华、中科大镜像,这些站点会定期同步PyPI的所有内容,国内用户常配置这类源提升下载速度
- VCS 仓库地址:很多未正式发布的测试版包、或者开发者自定义修改的包,会直接从Git等版本控制系统仓库拉取,最常见的就是GitHub仓库,另外也包括GitLab、Gitee等私有/公开代码托管平台
- 本地/内网私有源:很多企业会搭建内部私有的包索引,用于存放内部自研的Python包,pip配置后会优先从这类私有源拉取包
- 直接的文件下载地址:部分包的发布资源会存放在独立的文件服务器、对象存储服务上,PyPI元数据里会直接指向这类地址,pip会直接从对应地址拉取包文件
注意:如果你的公司需要配置白名单,优先把在用的包索引地址加入白名单即可覆盖绝大多数安装场景,如果需要安装直接关联GitHub的未发布包,再单独添加GitHub的访问权限即可
你可以通过pip config list命令查看当前环境配置的所有包索引地址,确认需要放行的域名。
内容的提问来源于stack exchange,提问作者Edgar D.R.
相关产品推荐
相关产品推荐

