通过创建包的本地(tarball)缓存来加速 pip 包安装
Accelerating pip package install by creating a local (tarball) cache of packages
我正在 运行 自动化测试套件,其中一项测试需要使用 pip 安装几个 Python 包以确保项目脚手架正常运行。
然而,从 PyPi 中获取包的操作非常缓慢,并且在测试期间造成不必要的时间浪费 运行。这也是由于网络连接错误导致的随机故障的重要来源。我的计划是创建一个包含将要安装的已知 Python 软件包的缓存压缩包。然后 pip 可以直接从这个 tarball 使用包或将它提取到 virtualenv 进行测试 运行.
此外,我们的目标是使其可重复,以便在 CI 和本地开发中可以使用相同的缓存(tarball)。
是否存在任何工具或流程来为 pip 创建可再分发的 Python 包缓存?
关于如何以与平台无关的方式执行此操作的任何其他想法?我假设可重定位虚拟环境特定于目标平台?
使用滚轮:
pip wheel -r requirements.txt
所有要求都构建到文件夹 wheelhouse
。
因此,在每个测试套件中,您可以 运行 pip install wheelhouse/*
你的第二个选项是 devpi,它作为 pypi 缓存。
我正在 运行 自动化测试套件,其中一项测试需要使用 pip 安装几个 Python 包以确保项目脚手架正常运行。
然而,从 PyPi 中获取包的操作非常缓慢,并且在测试期间造成不必要的时间浪费 运行。这也是由于网络连接错误导致的随机故障的重要来源。我的计划是创建一个包含将要安装的已知 Python 软件包的缓存压缩包。然后 pip 可以直接从这个 tarball 使用包或将它提取到 virtualenv 进行测试 运行.
此外,我们的目标是使其可重复,以便在 CI 和本地开发中可以使用相同的缓存(tarball)。
是否存在任何工具或流程来为 pip 创建可再分发的 Python 包缓存?
关于如何以与平台无关的方式执行此操作的任何其他想法?我假设可重定位虚拟环境特定于目标平台?
使用滚轮:
pip wheel -r requirements.txt
所有要求都构建到文件夹 wheelhouse
。
因此,在每个测试套件中,您可以 运行 pip install wheelhouse/*
你的第二个选项是 devpi,它作为 pypi 缓存。