Pipenv锁:如何缓存下载以传输到脱机计算机

时间:2018-04-26 06:35:23

标签: python caching deployment continuous-integration pipenv

我正在寻找一种方法来创建满足Pipfile.lock所需的所有依赖项的自包含存档。实现此目的的一种方法是将PIPENV_CACHE_DIR指向空的临时目录,运行pipenv install,发送该目录的内容,并在脱机计算机上使用它。

,例如,这应该有效:

tmpdir=$(mktemp -d)
if [ -n "$offline" ]; then
    tar -xf pipenv_cache.tar -C "$tmpdir"
fi
pipenv --rm
PIPENV_CACHE_DIR="$tmpdir" PIP_CACHE_DIR="$tmpdir" pipenv install
if [ -n "$online" ]; then
    tar -cf pipenv_cache.tar -C "$tmpdir" .
fi

但是,这个脚本存在许多问题,一个是它无法使用在线机器的缓存,而是每次都要下载所有内容。

问题是,有没有更好的方法,不涉及自定义脚本?也许是一个记录在案的社区最佳实践?

理想情况下,会存在如下界面:

pipenv lock --create-archive <file_name>
pipenv install --from-archive <file_name>

1 个答案:

答案 0 :(得分:0)

通过一些Shell脚本工作,可以制作wheelfreeze

要创建存档(在Bash shell中):

(. "$(pipenv --venv)"/bin/activate && wheelfreeze <(pipenv lock -r))

要从存档安装:

wheelfreeze/install "$(pipenv --venv)"

披露:俗话说,我试图解决问题时创造了“车轮冻结”技术。