pip可以使用已有的包而不是重新下载吗?

16 投票
3 回答
3204 浏览
提问于 2025-04-16 13:50

我正在做一个新项目,需要创建一个新的虚拟环境(virtualenv)。当我运行命令 pip install -r requirements.txt 时,它又重新下载那些包,尽管这些包在之前项目的虚拟环境中已经存在。

有没有办法让 pip 从另一个虚拟环境中获取这些包呢?

3 个回答

3

不行。你可以自己搭建一个PyPI的镜像或者缓存代理服务器,但就只有这些功能。

5

和被接受的答案一样,你可以使用 ~/.pip/pip.conf 这个文件:

[global]
download-cache=/path/to/some/dir

具体内容可以在 这里 找到。

15

这不是你问题的直接答案,但我想这可能是你想要的,也就是避免下载:你可以设置一个环境变量 PIP_DOWNLOAD_CACHE,比如:

PIP_DOWNLOAD_CACHE=/path/to/directory/where/downloaded/packages/will/be/stored

这样,软件包会被下载到这个目录里,如果以后需要再次安装,就会从这个目录里取。

这个方法我是在这里找到的:http://tartley.com/?p=1133,对我来说效果很好。

另外,pip install 命令还有一个选项 --download-cache,我猜它的功能和这个环境变量是一样的,不过设置环境变量会更方便一些。

撰写回答