首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用pip从本地缓存安装?

如何使用pip从本地缓存安装?
EN

Stack Overflow用户
提问于 2011-01-26 23:38:32
回答 6查看 61.7K关注 0票数 149

我在不同的virtualenv环境中安装了很多相同的包。有没有办法让我下载一次包,然后从本地缓存安装pip

这将减少下载带宽和时间。

EN

回答 6

Stack Overflow用户

发布于 2013-04-11 20:22:32

对于较新的Pip版本:

较新的Pip版本现在默认缓存下载。请参阅此文档:

https://pip.pypa.io/en/stable/reference/pip_install/#caching

对于较早的Pip版本:

创建一个名为~/.pip/pip.conf的配置文件,并添加以下内容:

[global]
download_cache = ~/.cache/pip

在OS上,更好的选择是~/Library/Caches/pip,因为它遵循其他OS程序使用的惯例。

票数 32
EN

Stack Overflow用户

发布于 2012-08-28 02:23:35

PIP_DOWNLOAD_CACHE有一些严重的问题。最重要的是,它将下载的主机名编码到缓存中,因此不可能使用镜像。

管理pip下载缓存的更好方法是将“下载包”步骤与“安装包”步骤分开。下载的文件通常被称为"sdist文件“(源代码发行版),我将把它们存储在一个目录$SDIST_CACHE中。

这两个步骤最终是:

pip install --no-install --use-mirrors -I --download=$SDIST_CACHE <package name>

它将下载该包并将其放在$SDIST_CACHE所指向的目录中。它不会安装该程序包。然后你运行:

pip install --find-links=file://$SDIST_CACHE --no-index --index-url=file:///dev/null <package name> 

将软件包安装到您的虚拟环境中。理想情况下,$SDIST_CACHE应该在您的源代码控制下提交。在部署到生产环境时,您只需运行第二个pip命令即可安装软件包,而无需下载它们。

票数 31
EN

Stack Overflow用户

发布于 2012-12-10 20:21:39

仅使用pip (我的版本是1.2.1),您还可以像这样构建本地存储库:

if ! pip install --find-links="file://$PIP_SDIST_INDEX" --no-index <package>; then
    pip install --download-directory="$PIP_SDIST_INDEX" <package>
    pip install --find-links="file://$PIP_SDIST_INDEX" --no-index <package>
fi

在pip的第一次调用中,只在本地存储库中查找需求文件中的包,然后从本地存储库中安装。如果失败,pip将从其通常的位置(例如PyPI)检索包并将其下载到PIP_SDIST_INDEX (但不安装任何东西!)。第一次调用是“重复的”,以便从本地索引正确地安装包。

(--download-cache创建的本地文件名是完整的(转义的) URL,pip不能将其用作--find-links的索引。如果找到缓存的文件,--download-cache将使用该文件。我们可以将这个选项添加到pip的第二次调用中,但是由于索引已经起到了缓存的作用,所以它不一定会带来很多东西。例如,如果您的索引是空的,这将有所帮助。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4806448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档