跳转到主要内容

管理Python环境的缓存

项目描述

根据需求文件的变化管理虚拟环境缓存。

此工具的一个示例用法可能是一个CI系统,该系统执行测试套件。如果没有需求的变化,可以使用的已缓存的虚拟环境可能已经在CI系统中可用。此环境可以预装所有依赖项以加快CI作业。

如果创建了新的虚拟环境,可以将此虚拟环境添加到缓存中,以加快下一个CI作业。

此工具根据提供的配置文件自动管理缓存、缓存条目的生命周期以及额外的缓存参数。

安装

您可以从PyPI安装最新版本(点击此处)

pip install virtualenv-cache

如果您希望从Git存储库运行最新版本

pip install git+https://github.com/fridex/virtualenv-cache@latest

用法

首先,需要生成一个配置文件

virtualenv-cache init

上述命令将在当前目录(默认)中创建一个配置文件,文件名为.virtualenv_cache.toml。请按照以下说明检查其配置选项,以匹配您期望的行为。该文件将为每个应使用缓存的项目生成,并应作为项目代码库的一部分 - 例如提交到Git仓库,以便在克隆时使用。

接下来,您的CI配置可以类似以下代码片段

cd project-root/
virtualenv-cache restore
[ $? -eq 1 ] && ( python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt && virtualenv-cache store )

上述代码片段将尝试从缓存中恢复虚拟环境。如果没有匹配的缓存虚拟环境,restore命令将退出,退出代码为1,表示缓存未命中。在这种情况下,可以创建并准备虚拟环境,以便在下次运行时结果为缓存命中(除非有需求文件的变化,这将导致创建新的虚拟环境并被缓存)。只需确保您在虚拟环境中安装了所有需求,并在requirements_lock_paths中声明它们即可。

配置文件

可以使用virtualenv-cache init命令生成配置文件。以下是一个此类配置文件的示例

[virtualenv-cache]
cache_size = 25
cache_path = "${HOME}/.virtualenv-cache/my-project/cache/"
virtualenv_path = ".venv"
requirements_lock_paths = [
    "requirements.txt",
    "requirements-dev.txt",
    "requirements-typing.txt"
]

cache_size

缓存的虚拟环境的数量。如果达到cache_size,则根据虚拟环境的使用情况进行缓存修剪 - 仅保留根据日期时间最常用的虚拟环境。

cache_path

缓存虚拟环境应存储的路径。如果您使用virtualenv-cache来管理多个项目的缓存,请确保为每个项目定义不同的cache_path

路径配置值可以声明环境变量,这些变量将被展开。

virtualenv_path

为项目创建虚拟环境的路径。此路径用于将虚拟环境复制到缓存或从缓存恢复。

路径配置值可以声明环境变量,这些变量将被展开。

requirements_lock_paths

影响虚拟环境中安装的依赖项的需求文件列表。可以声明锁文件,如由pip-tools生成的requirements.txt,由Poetry生成的poetry.lock文件,由PDM生成的pdm.lock文件,或由Pipenv生成的Pipfile.lock

注意,这些文件的内部计算了基于内容的哈希,而不考虑语义。这意味着对文件的任何更改,即使是添加一行,都会影响新的缓存条目创建。通常,这不会引起任何问题,因为旧的缓存条目将根据cache_size配置选项逐渐被删除。这也意味着您可以添加任何可能影响虚拟环境的其他文件到这个列表中。

命令

此工具可以与以下子命令一起运行

  • virtualenv-cache store - 将当前虚拟环境存储到缓存中

  • virtualenv-cache restore - 从缓存中恢复匹配的虚拟环境

  • virtualenv-cache init - 初始化配置文件

  • virtualenv-cache list - 列出缓存条目及其附加元数据,如最后访问时间

  • virtualenv-cache erase - 删除所有缓存的虚拟环境

查看 --help 了解更多信息及可用选项。

附加说明

所有CLI参数都可以作为环境变量提供

  • VIRTUALENV_CACHE_CONFIG_PATH - 指向 virtualenv-cache 配置文件的路径

  • VIRTUALENV_CACHE_FORMAT - 用于打印终端输出的格式

  • VIRTUALENV_CACHE_WORK_DIR - CLI的工作目录

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

virtualenv-cache-0.0.2.tar.gz (28.9 kB 查看哈希值)

上传时间

构建分布

virtualenv_cache-0.0.2-py3-none-any.whl (22.4 kB 查看哈希值)

上传时间 Python 3

支持