如何使用Python的点子来下载和保留一个包的压缩文件?

如果我想使用pip命令下载一个包(及其依赖项),但保留所有下载的压缩文件(比如说django-socialregistration.tar.gz) – 是否有办法做到这一点?

我已经尝试了各种命令行选项,但似乎总是解压缩和删除 zipfile – 或者它获取zipfile,但用于原始包,而不是依赖关系。

--download-cache选项应该做你想做的事情:

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

然而,当我testing这个,主包下载,保存和安装好,但依赖关系被保存与他们的完整的urlpath作为名称 – 有点烦人,但所有tar.gz文件在那里。

--download选项下载主包和它的依赖关系,并不安装其中的任何一个。 ( 请注意在版本1.1之前,– --download选项没有下载依赖关系。)

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

pip文档概述了使用--download进行快速和本地安装 。

我总是这样下载软件包:

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 .txt中,我们这样做:

pip freeze > requirement.txt

然后,可以像上面那样使用requirement.txt进行下载,或者通过requirement.txt进行安装:

pip install -r requirement.txt

参考: pip安装程序

pip install --download已被弃用。 从版本8.0.0开始,您应该使用pip download命令:

  pip download <package-name> 

在7.1.2版本中,pip会下载一个软件包(如果有的话):

 pip install package -d /path/to/downloaded/file 

以下下载源代码分发:

 pip install package -d /path/to/downloaded/file --no-binary :all: 

如果pip知道它们(例如,如果pip show package列出它们),这些下载依赖关系也是如此。


更新

正如Anton Khodak所指出的那样 ,从版本8 开始 , pip download命令是首选。在上面的例子中,这意味着/path/to/downloaded/file需要用-d选项给出,所以用downloadreplaceinstall