2018-05-17
生產環境的服務器(以下簡稱內網服務器)由於安全限制,可能無法連接外網。這種情況下將無法直接使用pip命令安裝python的包
一、更改pip源
- 默認pip是使用Python官方的源,但是由於國外官方源經常被牆,導致不可用,我們可以使用國內的python鏡像源,從而解決Python安裝不上庫的煩惱
網上有很多可用的源,例如: 豆瓣:http://pypi.douban.com/simple/ 清華:https://pypi.tuna.tsinghua.edu.cn/simple
注意后面要有/simple目錄!!!
1、臨時使用,只有安裝pillow時使用指定源
1、臨時使用,只有安裝pillow時使用指定源
2、永久修改
Linux下,修改 ~/.pip/pip.conf (沒有就創建一個), 修改 index-url至tuna,內容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
windows下,直接在user目錄中創建一個pip目錄,如:C:\Users\xx\pip,新建文件pip.ini,內容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
二、pip的安裝
官方文檔: https://pip.pypa.io/en/stable/installing/
1、下載get-pip.py腳本執行
python get-pip.py
2、源碼安裝
- setuptools (https://pypi.org/project/setuptools/#description)
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
- 下載pip
進入https://pypi.python.org/pypi/pip,下載第二項。
解壓下載的文件(windows下只用解壓工具解壓如RAR,Linux下終端輸入tar -xf pip-9.0.1.tar.gz,即tar -xf 文件名),進入解壓后的文件夾中,調出命令行窗口或者終端,
- windows下輸入
python setup.py install
- Linux下輸入
sudo python setup.py install
- 安裝成功后測試下,輸入
pip -v
三、離線安裝
1、通過代理服務器連接外網安裝
內網服務器一般是通過跳板機連接的,若你的跳板機可以正常訪問外網,則可以考慮在跳板機上架設代理服務器,然后目標服務器通過跳板機的代理訪問外網。
$ export https_proxy=http://proxy.mydomain.com:<port>
$ export http_proxy=http://proxy.mydomain.com:<port>
$ pip install <package>
2、離線安裝
若不具備使用代理服務器的情況,則先使用一台可以連接網絡的服務器下載需要的packages,然后再拷貝到內網服務器上進行安裝。
https://pip.pypa.io/en/stable/reference/pip_download/#pip-download
(1)下載需要離線安裝的Packages
- 安裝單個Package
$ pip download -d path SomePackage # equivalent to above
- 安裝多個Packages
pip download -d path SomePackage -r requirements.txt
(2)將下載好的Packages拷貝至內網服務器
- 使用scp、sftp等方式將下載好的Packages拷貝至需要離線安裝這些包的內網服務器。
(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
