如何使用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
选项给出,所以用download
replaceinstall
。