centos7环境下安装python3有很多坑,经过不断总结经验教训,把正确的步骤记录下来,以便后面使用查询。
1.centos7本身自带的python2版本不能卸载,因为yum等软件依赖于python2,只能在保留python2的基础上,重新安装一个python3(本次安装版本:3.8.5)
另外,任何有关python的组件安装后,都需要在python的安装目录下运行make install
首先安装必备:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
安装完成后,最好再安装组件:libffi-devel:
yum install libffi-devel -y
因为后面在部署Pyhotn项目时会用到,到那时再安装并且到python目录下再次make&&make install会很麻烦,不如提前一次性安装好。
以上安装完成后,去下载python:
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
下载会很慢,可用迅雷等工具下载,然后拷贝到指定目录,本次安装放置目录为:/usr/local
然后解压到指定目录(本次安装目录为:/usr/local/python3,可以先解压再改名)
tar -zxvf Python-3.8.5.tgz
并进入目录,执行:
./configure
make&&make install
即可完成。然后把系统默认的python指向最新的python3,并保留yum指向python2(python2和python3不兼容,而yum依赖于pytyhon2)
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python3 /usr/bin/python
mv /usr/bin/pip /usr/bin/pip.bak #此语句可不执行,因为压根没有/usr/bin/pip文件
ln -s /usr/local/bin/pip3 /usr/bin/pip
2.其次,把python命令默认指向python3并把yum指向系统自带的python2.7
vi /usr/libexec/urlgrabber-ext-down
把文件的第一行usr/bin/python修改为:
#!/usr/bin/python2.7
类似:打开文件:
vi /usr/bin/yum
也修改为相同目录:
#!/usr/bin/python2.7
以上执行完毕后,可以测试下yum是否正常:
运行:yum:
Loaded plugins: fastestmirror
You need to give some command
Usage: yum [options] COMMAND
List of Commands:
...
运行:python -V
Python 3.8.5
参考目录:centos7下安装python3.7