How to use Python's pip to download and keep the zipped files for a package?

前端 未结 8 915
暗喜
暗喜 2020-11-28 18:48

If I want to use the pip command to download a package (and its dependencies), but keep all of the zipped files that get downloaded (say, django-social

相关标签:
8条回答
  • 2020-11-28 19:28

    pip install --download is deprecated. Starting from version 8.0.0 you should use pip download command:

     pip download <package-name>
    
    0 讨论(0)
  • 2020-11-28 19:30

    In version 7.1.2 pip downloads the wheel of a package (if available) with the following:

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

    The following downloads a source distribution:

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

    These download the dependencies as well, if pip is aware of them (e.g., if pip show package lists them).


    Update

    As noted by Anton Khodak, pip download command is preferred since version 8. In the above examples this means that /path/to/downloaded/file needs to be given with option -d, so replacing install with download works.

    0 讨论(0)
  • 2020-11-28 19:31

    The --download-cache option should do what you want:

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

    However, when I tested this, the main package downloaded, saved and installed ok, but the the dependencies were saved with their full url path as the name - a bit annoying, but all the tar.gz files were there.

    The --download option downloads the main package and its dependencies and does not install any of them. (Note that prior to version 1.1 the --download option did not download dependencies.)

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

    The pip documentation outlines using --download for fast & local installs.

    0 讨论(0)
  • 2020-11-28 19:33

    I always do this to download the packages:

    pip install --download /path/to/download/to_packagename

    OR

    pip install --download=/path/to/packages/downloaded -r requirements.txt

    And when I want to install all of those libraries I just downloaded, I do this:

    pip install --no-index --find-links="/path/to/downloaded/dependencies" packagename

    OR

    pip install --no-index --find-links="/path/to/downloaded/packages" -r requirements.txt


    Update

    Also, to get all the packages installed on one system, you can export them all to requirement.txt that will be used to intall them on another system, we do this:

    pip freeze > requirement.txt

    Then, the requirement.txt can be used as above for download, or do this to install them from requirement.txt:

    pip install -r requirement.txt

    REFERENCE: pip installer

    0 讨论(0)
  • 2020-11-28 19:34

    Use pip download <package1 package2 package n> to download all the packages including dependencies

    Use pip install --no-index --find-links . <package1 package2 package n> to install all the packages including dependencies. It gets all the files from CWD. It will not download anything

    0 讨论(0)
  • 2020-11-28 19:34

    I would prefer (RHEL) - pip download package==version --no-deps --no-binary=:all:

    0 讨论(0)
提交回复
热议问题