centos7.2下安装python3.6.2

centos7.2默认已经安装了python2.7.5,因此要安装python3.6的话,得从python官网上下载相应版本的安装包

查看python2.7

1、下载:wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

2、解压:tar -xvJf  Python-3.6.2.tar.xz     或者 xz -d Python-3.6.2.tar.xz 解压成 Python-3.6.2.tar

tar  xvf Python-3.6.2.tar

3、进入解压目录编译安装

./configure prefix=/usr/local/python
make
make install

4、软连接

ln -s /usr/local/python/bin/python3 /usr/bin/python

会提示报错

因为已经默认指向了python2,所以把原来的python备份

在 /usr/bin下

mv python python.bak

5、软连接建立完成后

python -V 

python2 -V

但是进入python3 后,发现退格键,上下键无法使用

是缺少一些依赖包导致。因此要安装一些依赖包。

使用yum安装,因为yum用到的还是python2

所以需要修改yum的文件,改为python2

 继续报错

根据错误提示,修改 /usr/libexec/urlgrabber-ext-down 文件也改成python2

再次执行

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

清空yum 缓存

yum clean all

yum makecache

然后重新yum,此时yum成功完成

再运行python

可以发现退格,上下键还不能使用

单独安装readline

pip install readline 

结果发现pip没有安装,需到官网下载pip安装包

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

下载好后,提示

下载setuptools

wget https://pypi.python.org/packages/3e/ec/9fec74fc9e96dca889df66833fc2b5eb0a158d3d6a71b9ad016dfd2a301f/setuptools-19.6.2.tar.gz#md5=ec3c428f0b81f75c8b9d19e9815da5d9

进入setptools的解压目录

python setup.py install

结果又报错

发现应该是python3执行的时候报错

改用python2 setup.py install解决

至于安装pip报错的缘故也是python3 不兼容导致。

用python2执行后,pip也安装成功

执行pip install readline
结果还是报错
 
至于出现这个错误需安装 python-devel这个模块
 
yum install python-devel 
安装好后,再执行pip install readline 提示成功

同时考虑重新编译安装python3.6.2

编译构成报错

于是改用安装最新的setuptools,支持python3.6.2的安装包,同时pip也用最新的包
 
结果还是提示上面的报错。这时候,下载zlib的最新安装包
wget http://zlib.net/zlib-1.2.11.tar.gz
编译安装zlib
./configure
make & make install
 
然后再次重新编译安装 python3.6.2
此次编译安装再没有出错
同时也提示pip9.0和setuptools安装成功
 
 
特地去pip和setuptools的安装目录下执行了 python setup,py install 提示都成功了
再到python的交互模式下,按上下键,退格键也不会再出现乱码。
至此python3和python2都可以正常使用。终于把环境搭建成功
时光一逝永不回,往事只能回味!
原文地址:https://www.cnblogs.com/liongong/p/7858573.html