如何使用Python的pip下载并保存包的压缩文件?

171 投票
9 回答
247221 浏览
提问于 2025-04-17 01:25

如果我想用 pip 命令来下载一个软件包(还有它需要的其他文件),但是又想 保留 所有下载的压缩文件(比如说,django-socialregistration.tar.gz),有没有办法做到这一点呢?

我试过各种命令行选项,但总是会解压缩并 删除 压缩文件——或者是下载了压缩文件,但 是原始软件包的,而不是它需要的其他文件。

9 个回答

73

我通常这样下载软件包:

pip install --download /path/to/download/to_packagename

或者

pip install --download=/path/to/packages/downloaded -r requirements.txt

当我想安装我刚下载的所有库时,我会这样做:

pip install --no-index --find-links="/path/to/downloaded/dependencies" packagename

或者

pip install --no-index --find-links="/path/to/downloaded/packages" -r requirements.txt


更新

另外,如果你想在一台电脑上安装所有的软件包,可以把它们导出到一个叫 requirement.txt 的文件中,这样就可以在另一台电脑上安装它们。我们这样做:

pip freeze > requirement.txt

然后,requirement.txt 可以像上面那样用于下载,或者可以这样从 requirement.txt 安装:

pip install -r requirement.txt

参考资料: pip 安装器

122

这个 --download-cache 选项应该能满足你的需求:

pip install --download-cache="/pth/to/downloaded/files" package

不过,我测试的时候发现,主要的软件包下载、保存和安装都没问题,但它的依赖包却是用完整的 URL 路径作为名字保存的——这有点烦人,不过所有的 tar.gz 文件都在。

--download 选项会下载主要的软件包和它的依赖包,但不会安装它们。(注意,在 1.1 版本之前--download 选项是 下载依赖包的。)

pip install package --download="/pth/to/downloaded/files"

pip 的文档中提到可以使用 --download 来进行 快速和本地安装

154

命令 pip install --download 已经不再推荐使用了。从版本 8.0.0 开始,你应该使用 pip download 这个命令:

 pip download <package-name>

撰写回答