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

Joh*_*n C 92 python pip

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

我尝试了各种命令行选项,但似乎总是解压缩并删除 zipfile - 或者它获取zipfile,但适用于原始包,而不是依赖项.

Mar*_*ill 113

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

pip install --download-cache="/pth/to/downloaded/files" package
Run Code Online (Sandbox Code Playgroud)

但是,当我测试这个时,主程序包下载,保存并安装好了,但依赖项以其完整的url路径作为名称保存 - 有点烦人,但所有tar.gz文件都在那里.

--download选项会下载主程序包及其依赖项,并且不会安装任何程序包.(注意之前的1.1版本--download选项并没有下载依赖关系.)

pip install package --download="/pth/to/downloaded/files"
Run Code Online (Sandbox Code Playgroud)

pip文档概述了--download用于快速和本地安装的内容.

  • `pip install --download`现已弃用,将从pip 10中删除.https://pip.pypa.io/en/latest/reference/pip_download/#overview.使用`pip download somepackage`. (16认同)
  • 具体来说,新的等价物是`pip download -d <dir> {-r requirements.txt | <packagename>}` (15认同)
  • 很好,确实有效 - 虽然我标记了一个`--no-install`选项.你对时髦的文件名是正确的,但至少文件是*那里*. (5认同)
  • --download-cache已弃用.使用pip install --download <dir> <pkg> (3认同)

Ant*_*dak 61

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

 pip download <package-name>
Run Code Online (Sandbox Code Playgroud)

  • 几天前尝试过,我认为它仍然试图从互联网上检索deps而不是使用下载的deps; IIRC,我不得不使用`sudo pip install <path-to-downloaded-package> --no-index --find-links \`pwd \`` (4认同)
  • 或 `pip download -d &lt;target dir&gt; &lt;package&gt;` 下载到特定目录。还会下载所有依赖项。 (4认同)
  • @knocte`pip install path-to-downloaded-package` (3认同)
  • 以及以后如何安装下载的软件包? (2认同)
  • 这是最新的答案。谢谢 (2认同)
  • 请注意,`pip download`也支持`-r requirements.txt`,因此您可以轻松地从连接互联网的计算机上全部下载它们,然后复制到离线计算机上并安装上述评论者的方式 (2认同)

sec*_*rve 54

我总是这样下载软件包:

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安装程序


jpm*_*c26 16

pip wheel是您应该考虑的另一个选择:

pip wheel mypackage -w .\outputdir
Run Code Online (Sandbox Code Playgroud)

它将下载包及其依赖项到一个目录(默认为当前工作目录),但它执行将任何源包转换为轮子的附加步骤。

它方便地支持需求文件:

pip wheel -r requirements.txt -w .\outputdir
Run Code Online (Sandbox Code Playgroud)

--no-deps如果您只想要特别请求的包,请添加参数:

pip wheel mypackage -w .\outputdir --no-deps
Run Code Online (Sandbox Code Playgroud)


jas*_*rim 7

在版本7.1.2中,pip使用以下内容下载包的轮子(如果可用):

pip install package -d /path/to/downloaded/file
Run Code Online (Sandbox Code Playgroud)

以下下载源分发:

pip install package -d /path/to/downloaded/file --no-binary :all:
Run Code Online (Sandbox Code Playgroud)

如果pip知道它们(例如,如果pip show package列出它们),它们也会下载依赖项.


更新

正如Anton Khodak所指出的,pip download从版本8 开始,命令是首选.在上面的示例中,这意味着/path/to/downloaded/file需要选择-d,因此替换installdownload作品.


Siv*_*mar 6

使用pip download <package1 package2 package n>下载所有的软件包,包括依赖性

使用pip install --no-index --find-links . <package1 package2 package n>安装所有的软件包,包括依赖性.它从中获取所有文件CWD.它不会下载任何东西


小智 5

离线安装 python 包

对于Windows用户:

下载到文件中,请打开cmd并按照以下步骤操作:

cd <*the file-path where you want to save it*>

pip download <*package name*>

包和依赖项将下载到当前工作目录中。

要从当前工作目录安装:

将下载的文件夹设置为 cwd,然后按照以下步骤操作:

pip install <*the package name which is downloded as .whl*> --no-index --find-links <*the file locaation where the files are downloaded*>

这将搜索该位置的依赖项。

  • 如果您不指定平台,它将下载当前操作系统的文件。因此,如果您在其他操作系统上安装下载的文件,这将不起作用 (2认同)