Skip to content

Instantly share code, notes, and snippets.

@prateek
Last active March 23, 2024 17:58
Show Gist options
  • Save prateek/525d14823c3df3ee9472 to your computer and use it in GitHub Desktop.
Save prateek/525d14823c3df3ee9472 to your computer and use it in GitHub Desktop.

Revisions

  1. prateek renamed this gist Mar 17, 2015. 1 changed file with 0 additions and 0 deletions.
  2. prateek revised this gist Mar 17, 2015. No changes.
  3. prateek created this gist Mar 17, 2015.
    48 changes: 48 additions & 0 deletions offline-install-notes.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,48 @@
    Offline Python Package Install Notes
    ====================================

    Two common cases which make the install of Python packages harder due to networking issues are:
    a) Install behind a Proxy
    b) Install without access to the internet

    ## (a) Install behind a Proxy
    In the case where the target machine connects to the internet over a network proxy, export the following environment vars, as appropriate - `http_proxy` and `https_proxy`. Eg:

    ```sh
    $ export https_proxy=http://proxy.mydomain.com:<port>
    $ export http_proxy=http://proxy.mydomain.com:<port>
    $ pip install <package>
    ```

    ## (b) Install without access to the internet
    In the case where the target machine does not have connectivity to the internet, you have to download the package and dependencies using a machine which does have connectivity to the internet. After which the install can follow. Sample instructions -

    ### Step 1. Download Packages for Offline Install
    Execute the instructions below download the packages on a machine which is able to connect to the internet.

    ```sh
    # if a single package is being installed
    $ pip install <package> --download /tmp/offline_packages

    # or, if a list of dependencies are to be installed
    $ pip install --download /tmp/offline_packages -r requirements.txt
    ```

    ### Step 2. Transfer downloaded packages
    Transfer downloaded packages to the target machine where the install is to be performed. Use scp/sftp/etc.

    ### Step 3. Install packages
    Assuming the directory `/tmp/transferred_packages` contains the contents of `/tmp/offline_packages` from the earlier machine, execute the following steps on the the target machine.

    ```sh
    # if a single package is being installed
    $ pip install --no-index --find-links="/tmp/tranferred_packages" <package>

    # if a list of dependencies are to be installed
    $ pip install --no-index --find-links="/tmp/tranferred_packages" -r requirements.txt
    ```

    ----------

    ### References
    [1]: http://stackoverflow.com/questions/7300321/how-to-use-pythons-pip-to-download-and-keep-the-zipped-files-for-a-package