构建本地服务PyPI代理和缓存工具

使用缓存机制可以显著减少对外部源的请求量,从而提高下载速度,并降低被源站封禁的风险。下面详细解释如何在本地服务器上设置和使用pip缓存机制。

缓存机制的基本原理

缓存机制的原理是在本地服务器上保存已经下载过的Python包,当其他服务器请求同样的包时,本地服务器可以直接提供,而无需再次从外部源下载。常见的缓存实现方式包括使用devpipypiserver等工具。

一、PyPI Server 比较

PyPI Server

PyPI 代理镜像

本地缓存

单元测试

系统测试

搜索

devpi

支持

支持

★★★★

★★★★★

支持 Web + XML RPC

DjangoPyPI

支持

不支持

支持 Web + XML RPC

chishop

不支持

不支持

不支持

pypiserver

支持

不支持

★★★★★

不支持

Cheese Shop

不支持

不支持

★★

支持 Web + XML RPC

localshop

支持

支持

★★★★

只支持 XML RPC

mypypi

不支持

不支持

★★

不支持

proxypypi

支持

支持

不支持

Flask-Pypi-Proxy

支持

支持

不支持

二、devpi 特有的功能

索引继承

pypiserver 等只支持两个索引: 私有的索引和公有的索引。 在私有索引上找不到 Python 包时, 就会去公有索引上找。 devpi 对这一功能做了扩展, devpi 可以支持多个索引。同时,新索引可以继承之前的索引,这在维护多版本系统上十分有用。

支持集群部署

支持一台或多台服务器部署,来加速访问。还支持通过 json 接口,实时监控集群的状态。

支持导入导出功能

支持导出服务器状态,并在必要时重新导回服务器,恢复服务器状态。

Jenkins 集成

支持给索引设置 Jenkins 触发器,可以使用 tox 自动测试上传的包。

使用 devpi 构建本地 PyPI 代理和缓存

devpi 不仅是一个Python包的索引服务器,它还具有强大的缓存功能,能够缓存来自PyPI或其他索引服务器的包。以下是配置步骤:

安装 devpi

# 创建conda环境
conda create -n devpi_env

# 激活conda环境
conda activate devpi

# 下载devpi
pip install devpi

配置和运行devpi-server

# 初始化devpi服务器
devpi-init

# 启动devpi服务器
devpi-server --host=localhost --port=3141

使用devpi-client

# 登录(首次使用用root账户)
devpi use http://localhost:3141
devpi login root --password=''

# 创建新用户(替换为你的用户名)
devpi user -c your_username password=your_password

# 创建代理索引,它会缓存来自官方 PyPI 的包
devpi index -c your_username/pypi-proxy bases=root/pypi

成功创建服务:

更多高级功能等待探索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值