生產環境的服務器(以下簡稱內網服務器)由於安全限制,可能無法連接外網。這種情況下將無法直接使用pip命令安裝python的包,下面介紹2種解決方法:
(a) 通過代理服務器連接外網安裝
內網服務器一般是通過跳板機連接的,若你的跳板機可以正常訪問外網,則可以考慮在跳板機上架設代理服務器,然後目標服務器通過跳板機的代理訪問外網。
$ export https_proxy=http://proxy.mydomain.com:<port>
$ export http_proxy=http://proxy.mydomain.com:<port>
$ pip install <package>
(b) 離線下載pip包進行安裝
若不具備使用代理服務器的情況,則先使用一臺可以連接網絡的服務器下載需要的packages,然後再拷貝到內網服務器上進行安裝。
Step 1. 下載需要離線安裝的Packages
在一臺可以訪問外網的機器上執行如下命令:
安裝單個Package
$ pip install <package> --download /tmp/offline_packages
安裝多個Packages
$ pip install --download /tmp/offline_packages -r requirements.txt
Step 2. 將下載好的Packages拷貝至內網服務器
使用scp、sftp等方式將下載好的Packages拷貝至需要離線安裝這些包的內網服務器。
Step 3. 安裝Packages
假設內網服務器的目錄 /tmp/transferred_packages 包含你上一步遠程拷貝過來packages,在內網服務器上執行如下命令
安裝單個Package的情況
$ pip install --no-index --find-links="/tmp/tranferred_packages" <package>
安裝多個Packages
$ pip install --no-index --find-links="/tmp/tranferred_packages" -r requirements.txt