背景
需要在远程服务器上安装Python3,但是这台服务器网络访问限制比较严格,无法直接通过访问外网链接安装Python3和Pip。安装下来坑比较多,特此记录。
下载和安装
下载
-
下载Python3的安装包
访问https://www.python.org/ftp/python/,下载合适的安装包,比如我选的3.7.4
-
下载Pip的安装包
(1) 访问https://pypi.org/,搜索pip,选择pip安装工具的包,比如我这里是pip 21.1.1
(2) 从Release history中选择合适的版本,比如我选择的19.0.3
(3) 从Download files中选择源码包,点击下载
-
下载Pip依赖的setuptools安装包
Pip安装过程可能会出现缺少setuptools包的问题,需要下载此安装包,下载方法参考pip安装包的下载过程,不赘述。
安装
- 将上述安装包上传到内网服务器/tmp文件夹下
- 安装pip依赖的zlib和libffi-devel
如果安装Pip或setuptools时提示缺少Module:’_ctypes’和’zlib’,需要安装zlib和libffi-devel:
注意:zlib和libffi-devel需要在安装Python3之前安装,如果在安装Python3之后发现缺少这两者的问题,需要在安装完zlib和libffi-devel之后重新安装python3# 安装过程报错提示No module named ‘_ctypes‘: yum install libffi-devel -y # 安装过程报错提示Compression requires the (missing) zlib module yum install zlib yum install zlib-devel
如果上述方法试了仍然报错缺少zlib,尝试下载安装zlib:https://sourceforge.net/projects/libpng/files/zlib/ - 安装python3
sudo mkdir /usr/local/python3 cd /tmp sudo tar -xzvf Python-3.7.4.tgz cd Python-3.7.4/ sudo ./configure --prefix=/usr/local/python3 sudo make sudo make install # 创建python3的链接 sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
- 安装setuptools
cd /tmp sudo tar -xzvf setuptools-41.1.0.zip cd setuptools-41.1.0/ sudo python3 setup.py install
- 安装pip
cd /tmp sudo tar -xzvf pip-19.0.3.tar.gz cd pip-19.0.3/ sudo python3 setup.py install
测试
import pip
没有报错,即可认为可用了
内网服务器放弃使用pip吧
嘿嘿,等你尝试在内网服务器使用pip安装第三方库,你会痛苦地发现pip没有勇武之地。因为使用pip安装whl文件时很容易出现需要访问外网的情况,无一例外都会安装失败。
终极解决方案:下载源码包,解压,使用setup.py安装,例如安装flask:
sudo tar -xzvf Flask-1.1.2.tar.gz
cd Flask-1.1.2
sudo python3 setup.py install
看下战果如何:
很遗憾:如法炮制去安装werkzeug
吧