You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pipenv Lock:如何缓存依赖包以迁移至离线机器

创建包含Pipfile.lock所有依赖的离线归档方案

嘿,我有个实用的方案能解决你要创建Pipfile.lock依赖离线归档的需求,亲测靠谱!核心思路是通过指定Pipenv的缓存目录,把所有依赖包统一收集到一个目录里,之后打包就能拿到可离线使用的归档文件了。

实现逻辑

  • 在线环境下:将Pipenv和Pip的缓存目录指向一个空临时目录,执行pipenv install让所有依赖包下载到这个目录,随后打包该目录
  • 离线环境下:把归档文件解压到临时目录,再让Pipenv从这个缓存目录读取依赖,无需网络

完整示例脚本

#!/bin/bash

# 创建临时目录用于存放依赖缓存
tmpdir=$(mktemp -d)

# 如果是离线模式,先解压已有的依赖归档到临时目录
if [ -n "$offline" ]; then
    tar -xf pipenv_cache.tar -C "$tmpdir"
fi

# 清理现有虚拟环境避免干扰
pipenv --rm

# 设置缓存目录环境变量,让Pipenv和Pip都使用临时目录
PIPENV_CACHE_DIR="$tmpdir" PIP_CACHE_DIR="$tmpdir" pipenv install --ignore-pipfile

# 在线环境下,打包临时目录为离线归档(可添加-z参数用gzip压缩)
if [ -z "$offline" ]; then
    tar -cf pipenv_cache.tar -C "$tmpdir" .
    echo "依赖归档已生成:pipenv_cache.tar"
fi

# 可选:清理临时目录
# rm -rf "$tmpdir"

脚本说明

  • mktemp -d:自动创建一个安全的临时目录,避免手动创建的权限问题
  • pipenv --rm:清空当前项目的虚拟环境,确保安装过程完全基于Pipfile.lock的依赖
  • --ignore-pipfile:强制使用Pipfile.lock的依赖版本,避免自动更新或读取Pipfile的变动
  • 在线环境下生成的pipenv_cache.tar就是你需要的独立归档,传到离线机器后,只需设置offline=1再运行脚本即可完成离线安装

内容的提问来源于stack exchange,提问作者Amir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:35:06