离线安装 Python 2.7, paramiko 和 tornado

无非就是离线安装, 步骤比较繁琐, 记录一下.

需求很简单, 一个离线安装的 Python, 能跑 tornado 和 paramiko

1. 离线安装 Python 2.7

tar axf Python-2.7.12.tgz

cd Python-2.7.12

./configure --prefix=/home/doge/opt

make

make install

2. 安装 setuptools

tar axf setuptools-28.8.0.tar.gz

cd setuptools-28.8.0

../opt/bin/python setup.py install

3. 安装 pip

tar axf pip-9.0.1.tar.gz

cd pip-9.0.1

../opt/bin/python setup.py install

4. 安装 paramiko

#1. 安装 pyasn1

./opt/bin/easy_install pyasn1-0.1.9-py2.7.egg 


#2. 安装 ipaddress

./opt/bin/pip install ipaddress-1.0.17-py2-none-any.whl


#3. 安装 enum34

./opt/bin/pip install enum34-1.1.6-py2-none-any.whl 


#4. 安装 six

./opt/bin/pip install six-1.10.0-py2.py3-none-any.whl


#5. 安装 idna

./opt/bin/pip install idna-2.1-py2.py3-none-any.whl


#6. 安装 pycparser
tar axf pycparser-2.17.tar.gz
cd pycparser-2.17
../opt/bin/python setup.py install
#7. 安装 cffi

./opt/bin/pip install cffi-1.9.1-cp27-cp27m-manylinux1_x86_64.whl
#8. 安装 cryptography

tar axf cryptography-1.6.tar.gz

cd cryptography-1.6

../opt/bin/python setup.py install


#9. 安装 paramiko

./opt/bin/pip install paramiko-2.0.2-py2.py3-none-any.whl

5. 安装 tornado

#1. 安装 backports_abc

tar axf backports_abc-0.5.tar.gz

cd backports_abc-0.5

../opt/bin/python setup.py install


#2. 安装 backports.ssl_match_hostname

tar axf backports.ssl_match_hostname-3.5.0.1.tar.gz

cd backports.ssl_match_hostname-3.5.0.1

../opt/bin/python setup.py install


#3. 安装 certifi

./opt/bin/pip install certifi-2016.9.26-py2.py3-none-any.whl


#4. 安装 ordereddict

tar axf ordereddict-1.1.tar.gz

cd ordereddict-1.1

../opt/bin/python setup.py install


#5. 安装 six

./opt/bin/pip install six-1.10.0-py2.py3-none-any.whl


#6. 安装 singledispatch

tar axf singledispatch-3.4.0.3.tar.gz

cd singledispatch-3.4.0.3

../opt/bin/python setup.py install


#7. 安装 tornado

tar axf tornado-4.4.2.tar.gz

cd tornado-4.4.2

../opt/bin/python setup.py install

6. 总结

有 .whl 或 .egg 的, 就不要使用 .tgz, cffi 就很难在离线状态下从源码编译成功.

7. 脚本

#!/bin/bash
mkdir doge && cd doge || exit -1
wget http://10.34.58.43:8080/install.tar
tar xf install.tar && rm -f install.tar
tar axf Python-2.7.12.tgz
cd Python-2.7.12 && ./configure --prefix=/home/doge/opt && make && make install && cd .. || exit -1
tar axf setuptools-28.8.0.tar.gz
cd setuptools-28.8.0 && ../opt/bin/python setup.py install && cd .. || exit -1
tar axf pip-9.0.1.tar.gz
cd pip-9.0.1 && ../opt/bin/python setup.py install && cd .. || exit -1
./opt/bin/easy_install pyasn1-0.1.9-py2.7.egg
./opt/bin/pip install ipaddress-1.0.17-py2-none-any.whl
./opt/bin/pip install enum34-1.1.6-py2-none-any.whl
./opt/bin/pip install six-1.10.0-py2.py3-none-any.whl
./opt/bin/pip install idna-2.1-py2.py3-none-any.whl

tar axf pycparser-2.17.tar.gz

cd pycparser-2.17 && ../opt/bin/python setup.py install && cd .. || exit -1

./opt/bin/pip install cffi-1.9.1-cp27-cp27m-manylinux1_x86_64.whl

tar axf cryptography-1.6.tar.gz
cd cryptography-1.6 && ../opt/bin/python setup.py install && cd .. || exit -1
./opt/bin/pip install paramiko-2.0.2-py2.py3-none-any.whl
tar axf backports_abc-0.5.tar.gz
cd backports_abc-0.5 && ../opt/bin/python setup.py install && cd .. || exit -1
tar axf backports.ssl_match_hostname-3.5.0.1.tar.gz
cd backports.ssl_match_hostname-3.5.0.1 && ../opt/bin/python setup.py install && cd .. || exit -1
./opt/bin/pip install certifi-2016.9.26-py2.py3-none-any.whl
tar axf ordereddict-1.1.tar.gz
cd ordereddict-1.1 && ../opt/bin/python setup.py install && cd .. || exit -1
./opt/bin/pip install six-1.10.0-py2.py3-none-any.whl
tar axf singledispatch-3.4.0.3.tar.gz
cd singledispatch-3.4.0.3 && ../opt/bin/python setup.py install && cd .. || exit -1
tar axf tornado-4.4.2.tar.gz
cd tornado-4.4.2 && ../opt/bin/python setup.py install && cd .. || exit -1