Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikahanninen/8cfe1698dc25d558ebf2aac9249413a1 to your computer and use it in GitHub Desktop.
Save mikahanninen/8cfe1698dc25d558ebf2aac9249413a1 to your computer and use it in GitHub Desktop.

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:

$ 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.

# 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.

# 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment