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: $ export http_proxy=http://proxy.mydomain.com: $ pip install ``` ## (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 --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" # 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