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