CentOS 7安装Python3详细过程
一 安装流程
自己安装的VM虚拟机,Python版本一开始默认都是python2.x:
[root@localhost ~]# python Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
但经常使用的都是Python3,所以,接下来手动安装python3,并且配置后使其可以并存使用。具体步骤如下(注意:这次所有的操作都是在root用户下进行的):
步骤一:查询现有python2安装路径(可忽略)
[root@localhost ~]# whereis python 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
通过以上查询,我们知道了python2安装在/user/bin目录中
[root@localhost ~]# cd /usr/bin [root@localhost bin]# ll python* lrwxrwxrwx. 1 root root 7 3月 11 23:35 python -> python2 lrwxrwxrwx. 1 root root 9 3月 11 23:35 python2 -> python2.7 -rwxr-xr-x. 1 root root 7136 11月 6 2016 python2.7
可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。
步骤二:安装编译相关工具
# 把这个组下常用软件装好,如果要查看有什么工具可以使用:yum groupinfo Development tools yum -y groupinstall "Development tools" # 安装依赖包,CentOS里面是-devel,如果过是Ubuntu下安装则修改为-dev yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel # libffi是用于高级语言之间的相互调用的插件,不安装libffi会导致pip安装失败 yum –y install libffi-devel
步骤三:下载Python3
# 切换到软件下载目录,我一般会把所有包都放这个目录下 cd /usr/local/src # 下载Python3 wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
步骤四: 安装Python3.5.3
依次执行下列代码即可
# 解压 tar -zxvf Python-3.5.3.tgz # 切换至python目录 cd Python-3.5.3 # 创建python编译目录(没有会报错) mkdir -p /usr/local/python3 # 配置python安装目录,默认安装在/usr/local/bin/中 ./configure --prefix=/usr/local/python3 # 编译安装 make && make install
注意:如果出现了“ModuleNotFound:No module named '_ctypes'”报错,那就是没有进行libffi-devel 安装!!!
步骤五:创建软连接
mv /usr/bin/python /usr/bin/python.bak ln -s /usr/local/python3/bin/python3 /usr/bin/python ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
通过上述操作后,后续具体操作如下:
[root@localhost /]# python Python 3.5.3 (default, Mar 18 2020, 21:23:13) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> [root@localhost /]# python2 Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> [root@localhost /]# pip -V # 操作python2 pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7) [root@localhost /]# pip3 -V # 操作python3 pip 9.0.1 from /usr/local/python3/lib/python3.5/site-packages (python 3.5)
二 配置yum
这时候,我们输入一下yum,会发现yum已经不能正常使用:
[root@localhost /]# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
这是为什么呢?
因为yum是依赖python2.7的,我们上面把python改成了python3.5了,自然不能正常使用了。这时我们需要修改一下yum里的相关依赖,具体操作如下:
步骤一:
vim /usr/libexec/urlgrabber-ext-down
步骤二:对yum文件做相同修改
vi /usr/bin/yum
至此,python3开发环境就配置完成了。
三 补充
3.1 pip安装
在通过虚拟机安装CentOS 7后,发现并没有自带pip。安装pip步骤如下:
步骤一:安装拓展源
yum -y install epel-release
步骤二:安装pip
yum -y install python-pip
如果需要进行升级,可执行:
pip install --upgrade pip
验证pip是否可用,可执行安装命令:
pip install 包
在进行步骤二时报错:
Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
解决办法:
vim /etc/yum.repos.d/epel.repo
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch # 取消第三行注释,并注释第四行 [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch #metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
3.2 卸载python3
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps # 卸载pyhton3 whereis python3 |xargs rm -frv # 删除所有残余文件 whereis python # 查看现有安装的python



浙公网安备 33010602011771号