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
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>
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 -
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
Transfer downloaded packages to the target machine where the install is to be performed. Use scp/sftp/etc.
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
Step 1 should probably be
or