如需转载,请根据 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 许可,附上本文作者及链接。
本文作者: 执笔成念
作者昵称: zbcn
本文链接: https://1363653611.github.io/zbcn.github.io/2019/11/05/py3.8_01_install/
lunix python 安装
先看看现有的 python2在哪里
1whereis python2# 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 目录
1cd /bin查看安装的python 版本
1zbcn@zbcn bin]$ ll python*2lrwxrwxrwx. 1 root root 7 Oct 23 17:56 python -> python23lrwxrwxrwx. 1 root root 9 Oct 23 17:56 python2 -> python2.74-rwxr-xr-x. 1 root root 7216 Aug 7 08:52 python2.7要安装编译 Python3的相关包
1yum 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扩展源2yum -y install epel-release3#安装pip4yum install python-pip可以用 python 安装一下 wget
pip install wget安装 3.8 的python 包
1# 下载2wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz34#解压缩5tar -zxvf Python-3.8.0.tgz67#进入解压后的目录,依次执行下面命令进行手动编译8./configure prefix=/usr/local/python39make && make install检查python3.8安装是否成功
1# 切换目录2cd /usr/local/python3/bin/3#校验python版本4./python3 -V5-> Python 3.8.0a367# pip 版本8./pip3 -V9-> pip 19.0.3 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8)添加软链接
1#添加python3的软链接2ln -s /usr/local/python3/bin/python3.8 /usr/bin/python33#添加 pip3 的软链接4ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip35#测试是否安装成功了6python -V
可选,如果需要将 python3.8 指向 python 软链接。则需要进行如下步骤
第9 步 的软链不执行,则无需执行以下操作,如果已经执行,则删删除已经安装的软链接
1# 删除软链接(python3 软链接)2rm -rf ./Python33rm -rf ./pip3备份原来的 python2 及 pip2
1whereis python2-> 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.gz34# 备份到python25mv /usr/bin/python /usr/bin/python267whereis pip8-> pip: /usr/bin/pip /usr/bin/pip2.79# 备份到pip210mv /usr/bin/pip /usr/bin/pip2python3 及 python 软链接的创建
1ln -s /usr/local/python3/bin/python3 /usr/bin/python23ln -s /usr/local/python3/bin/pip3 /usr/bin/pip45python -V6-> Python 3.8.0a378pip -V9-> pip 19.0.3 from /usr/local/python3/lib/python3.8/site-packages/pip (python 3.8)验证 python2 和 pip2 命令
1python2 -V2pip2 -V- 注:
- 如果出现
bash: cd: python2: Too many levels of symbolic links异常- 原因: 建立软连接时,采用的时相对路径
- 查看软连接信息
ls -al - 解决方案: 用绝对路径代替相对路径
ln -s /usr/bin/python2.7 /usr/bin/python2, 问题解决
yum 命令执行报错
1yum -y install gcc23-> File "/usr/bin/yum", line 304-> except KeyboardInterrupt, e:5^6-> SyntaxError: invalid syntax原因:因为 yum 是使用 python2 编写的,所以需要把 yum 的头文件改成用 python2 作为解释器
解决方案
1whereis yum2-> yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.834-> vim /usr/bin/yum56其中,#!/usr/bin/python 改成 #!/usr/bin/python2 即可