前言
centos7 自带有 python,但是却是 python2 版本的 python,如果你想安装个python3怎么办呢?
如果直接删除python2的话,可能会引起其他的问题,因为有些东西是依赖python2的,最好的解决办法是python3和python2共存,新安装一个python3的环境。
0. 查看现有 python 状态
# cd / #先回到根目录
# whereis python #查看python所在目录(/usr/bin下)
python: /usr/bin/python /usr/bin/python3.6 /usr/bin/python2.7-config /usr/bin/python2.7 /usr/bin/python3.6m /usr/lib/python3.6 /usr/lib/python2.7 /usr/lib64/python3.6 /usr/lib64/python2.7 /etc/python /usr/local/lib/python3.6 /usr/include/python2.7 /usr/include/python3.6m /usr/share/man/man1/python.1.gz
# cd /usr/bin #切到 bin 目录
# ll python* #查看python开头的相关文件详情
xx 1 root root 7 Mar 26 2019 python -> python2
xx 1 root root 9 Mar 26 2019 python2 -> python2.7
xx 1 root root 7216 Oct 31 2018 python2.7
xx 1 root root 1835 Oct 31 2018 python2.7-config
xx 1 root root 16 Mar 26 2019 python2-config -> python2.7-config
xx 1 root root 9 Sep 18 22:19 python3 -> python3.6
xx 1 root root 18 Sep 18 22:19 python36 -> /usr/bin/python3.6
x 2 root root 11408 Apr 26 2019 python3.6
x 2 root root 11408 Apr 26 2019 python3.6m
x 1 root root 14 Mar 26 2019 python-config -> python2-config
#
从查看的结果可以看到 python 指向的是 python2 ,python2 指向的是python2.7。那也就是在控制台输入python、python2、python2.7都是运行python2.7
因此我们只需安装一个 python3.8.2 的环境,让 python3 指向 python3.8.2, 那就可以完美的共存了。
注意:如果要修改系统默认执行的 python -> python2.7 为 python -> python3.* ,则需要注意【yum是依赖于python2的,所以需要更改yum里面的python指向】
1. 安装第三方库
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
# yum install libffi-devel -y
2. 安装python3
# 建立新目录
# sudo mkdir /usr/local/python3
# 以3.8.2为例,需要下载高版本请访问:https://www.python.org/ftp/python
# wget --no-check-certificate https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz
# 解压安装包
# tar xzvf Python-3.8.2.tgz
# 进入目录
# cd Python-3.8.2
# 编译,并配置 python3.8.2 的安装⽬目录
# 使用 find -name configure 来查找目录
# sudo ./configure --prefix=/usr/local/python3
# 安装
# sudo make && make install
关于 --prefix=/ :
作用就是指定安装路径。
不指定 prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。
你要卸载这个程序,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。
指定prefix,直接删掉一个文件夹就够了。
关于命令 ./configure --prefix=/usr/local/python3 可能会报以下错误:
-bash: ./configure: No such file or directory
原因解释
3. 创建软链接
# sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
4. 验证python安装
# python3 -V
5. 安装pip
# pip3 -V
Traceback (most recent call last):
File "/usr/local/bin/pip3", line 7, in
from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip._internal.cli.main'
# python3 -m pip install --user --upgrade pip
# 或者官方
# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# python3 get-pip.py
# 或者通过
# wget --no-check-certificate https://github.com/pypa/pip/archive/20.0.2.tar.gz #未试验
6. 解压安装
# tar -xzvf 20.0.2.tar.gz
# cd pip-20.0.2
# python3 setup.py install
7. 创建软链接
# sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
8. 测试安装
# pip3 -V
pip 20.0.2 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8)
参考