如需转载,请根据 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 许可,附上本文作者及链接。
本文作者: 执笔成念
作者昵称: zbcn
本文链接: https://1363653611.github.io/zbcn.github.io/2019/11/05/py3.8_01_install/
lunix python 安装
先看看现有的 python2在哪里
1
whereis python
2
# python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python.bak /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
切换至bin 目录
1
cd /bin
查看安装的python 版本
1
zbcn@zbcn bin]$ ll python*
2
lrwxrwxrwx. 1 root root 7 Oct 23 17:56 python -> python2
3
lrwxrwxrwx. 1 root root 9 Oct 23 17:56 python2 -> python2.7
4
-rwxr-xr-x. 1 root root 7216 Aug 7 08:52 python2.7
要安装编译 Python3的相关包
1
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
提示错误:
错误信息:
Loaded plugins: fastestmirror, langpacks You need to be root to perform this command.
解决方案: 输入su 回车输入密码 即可解决
注意:
- 这里面有一个包很关键libffi-devel,因为只有3.7才会用到这个包,如果不安装这个包的话,在 make 阶段会出现如下的报错:
# ModuleNotFoundError: No module named '_ctypes'
安装pip,因为 CentOs 是没有 pip 的。
1
#运行这个命令添加epel扩展源
2
yum -y install epel-release
3
#安装pip
4
yum install python-pip
可以用 python 安装一下 wget
pip install wget
安装 3.8 的python 包
1
# 下载
2
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
3
4
#解压缩
5
tar -zxvf Python-3.8.0.tgz
6
7
#进入解压后的目录,依次执行下面命令进行手动编译
8
./configure prefix=/usr/local/python3
9
make && make install
检查python3.8安装是否成功
1
# 切换目录
2
cd /usr/local/python3/bin/
3
#校验python版本
4
./python3 -V
5
-> Python 3.8.0a3
6
7
# pip 版本
8
./pip3 -V
9
-> pip 19.0.3 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8)
添加软链接
1
#添加python3的软链接
2
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
3
#添加 pip3 的软链接
4
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
5
#测试是否安装成功了
6
python -V
可选,如果需要将 python3.8 指向 python 软链接。则需要进行如下步骤
第9 步 的软链不执行,则无需执行以下操作,如果已经执行,则删删除已经安装的软链接
1
# 删除软链接(python3 软链接)
2
rm -rf ./Python3
3
rm -rf ./pip3
备份原来的 python2 及 pip2
1
whereis python
2
-> python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /- --> etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
3
4
# 备份到python2
5
mv /usr/bin/python /usr/bin/python2
6
7
whereis pip
8
-> pip: /usr/bin/pip /usr/bin/pip2.7
9
# 备份到pip2
10
mv /usr/bin/pip /usr/bin/pip2
python3 及 python 软链接的创建
1
ln -s /usr/local/python3/bin/python3 /usr/bin/python
2
3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
4
5
python -V
6
-> Python 3.8.0a3
7
8
pip -V
9
-> pip 19.0.3 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8)
验证 python2 和 pip2 命令
1
python2 -V
2
pip2 -V
- 注:
- 如果出现
bash: cd: python2: Too many levels of symbolic links
异常- 原因: 建立软连接时,采用的时相对路径
- 查看软连接信息
ls -al
- 解决方案: 用绝对路径代替相对路径
ln -s /usr/bin/python2.7 /usr/bin/python2
, 问题解决
yum 命令执行报错
1
yum -y install gcc
2
3
-> File "/usr/bin/yum", line 30
4
-> except KeyboardInterrupt, e:
5
^
6
-> SyntaxError: invalid syntax
原因:因为 yum 是使用 python2 编写的,所以需要把 yum 的头文件改成用 python2 作为解释器
解决方案
1
whereis yum
2
-> yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8
3
4
-> vim /usr/bin/yum
5
6
其中,#!/usr/bin/python 改成 #!/usr/bin/python2 即可