如何使用Python的pip下载并保存包的压缩文件?
如果我想用 pip
命令来下载一个软件包(还有它需要的其他文件),但是又想 保留 所有下载的压缩文件(比如说,django-socialregistration.tar.gz),有没有办法做到这一点呢?
我试过各种命令行选项,但总是会解压缩并 删除 压缩文件——或者是下载了压缩文件,但 只 是原始软件包的,而不是它需要的其他文件。
9 个回答
我通常这样下载软件包:
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 安装器
这个 --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
来进行 快速和本地安装。
命令 pip install --download
已经不再推荐使用了。从版本 8.0.0 开始,你应该使用 pip download
这个命令:
pip download <package-name>