如果我想使用pip
命令下载一个包(及其依赖项),但保留所有被下载的压缩文件(比如django-socialregistration.tar.gz)——有没有什么办法可以实现这个目标?
我尝试过各种命令行选项,但它似乎总是会解压并删除zip文件或者只为原始包获取zip文件,而不是获取依赖项的zip文件。
pip install --download
已被弃用。从版本8.0.0开始,您应该使用pip download
命令:
pip download <package-name>
--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
来进行快速和本地安装。
--no-install
选项。你关于文件名有点奇怪的说法是对的,但至少文件在那里。 - John C--download
选项会下载带有依赖关系的软件包。 - Mohammad Niknampip install --download
命令,并将在 pip 10 版本中删除。请使用 pip download somepackage
命令代替。具体信息可参考:https://pip.pypa.io/en/latest/reference/pip_download/#overview。 - Sнаđошƒаӽpip download -d <dir> { -r requirements.txt | <packagename> }
。具体而言,该命令意为从 PyPI 下载指定软件包或在 requirements.txt 文件中列出的所有软件包,并将它们存储在指定目录 <dir>
中。 - rrauenza我通常使用以下命令下载包:
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 wheel
是另一个您应考虑的选项:
pip wheel mypackage -w .\outputdir
它将下载软件包及其依赖项到一个目录中(默认情况下为当前工作目录),但它会执行额外的步骤,将任何源代码软件包转换为wheels格式。
它方便地支持需求文件:
它将下载软件包及其依赖项到一个目录中(默认情况下为当前工作目录),但它会执行额外的步骤,将任何源代码软件包转换为wheels格式。
它方便地支持需求文件:
pip wheel -r requirements.txt -w .\outputdir
如果你只想安装特定的软件包,可以添加--no-deps
参数:
pip wheel mypackage -w .\outputdir --no-deps
使用pip download <package1 package2 package n>
命令下载包及其依赖项
使用pip install --no-index --find-links . <package1 package2 package n>
命令安装包及其依赖项。
它会从当前工作目录 CWD
获取所有文件。
它不会下载任何内容。
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
命令。在上面的示例中,这意味着需要使用选项 -d
给出已下载文件的路径 /path/to/downloaded/file
,这样用 download
替换 install
即可。
对于Windows 用户:
要将文件下载到本地,请打开cmd并执行以下命令:
cd <*你想要保存的文件路径*>
pip download <*包名*>
该包及其依赖项将会被下载到当前工作目录中。
要从当前工作目录安装:
请将下载文件所在文件夹设为当前工作目录,然后按照以下步骤继续进行:
pip install <*以.whl格式下载的包名*> --no-index --find-links <*文件下载路径*>
这将在指定位置搜索依赖项。
sodim.dev
。我倾向于使用(RHEL) - pip download package==version --no-deps --no-binary=:all:
pip install path-to-downloaded-package
安装已下载的软件包。 - Anton Khodaksudo pip install <path-to-downloaded-package> --no-index --find-links \
pwd``。 - knoctepip download -d <目标目录> <包名>
命令来将软件包下载到指定的目录中,所有依赖项也会一并下载。 - Vic