2018-07-07在centos中安装python3及pip3

这是一篇奠基文,虽然很多年前上大学的时候自己就开始做技术博客,但是后来主要是因为懒,又被很多别的琐事所干扰不能一门心思搞技术,所以就中断了。现在决定重新记录,一来很多知识都是重复运用,用完不去加强记忆,下一次要用的时候又要再次搜索,效率非常低下,二来做技术还是不能太闭门造车,如果能和网友们一起分享探讨,指出我的不足之处,对于自身一定是有帮助的。

本人行文比较啰嗦,重要的干货都用粗体标记了

今天就来记录在centos中安装python3和pip3的方法。

环境:阿里云香港ECS,64位centos7.4。

centos操作系统本身是自带python2的,但是由于我学习python就是学习的python3,而且据说python将来也要用python3一统天下了,所以想安装python3来替代掉原有的python2。

直接sudo yum install python3是不行的,提示没有可用的软件包。搜了下是要用源代码编译安装,google了一下下载了https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz,但实际上在官网(https://www.python.org/downloads/source/)可以找到最新版的python安装包,都已经3.7了

命令:wget --no-check-certificate https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz

之所以有--no-check-certificate选项应该是https协议(而非http)造成的

下载后解压,进入目录后执行:

sudo ./configure --prefix=/usr/local/python3

这一步暂时还不明白是什么意思,别人的博客上说是创建指定目录,我感觉这还待进一步确定。

然后make && sudo make install,等待安装完成即可

我在make && sudo make install的时候并没有提示软件库依赖不足,可能是由于我之前安装apache php mysql之类的时候已经安装过所需依赖了。

这个时候输入python --version仍然是提示python2的版本,我们要创建一个连接文件才能执行python3命令:

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3

然后输入python3 --version就能提示3.6.0版本了,输入python --version提示2.7.0版本,这样就能两个版本共存。

如果想直接用python命令来调用python3,用python2命令来调用python2,可以重新创建命令python的连接文件

可以先备份一下原有的python连接文件

sudo mv /usr/bin/python /usr/bin/python.backup

然后创建新的连接文件

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python

然后通过python --version查看就能显示出3.6.0版本了

我的环境中已经默认了有python2命令的连接文件指向2.7.0的python,因此不需要重新创建。

但是由于yum使用的是python2,讲默认的python命令指向python3后使用yum命令会出错,因此还需要更改一下yum配置文件:

ls /usr/bin/yum*

一共有7个:yum          yum-config-manager  yum-debug-restore  yum-groups-manager

yum-builddep  yum-debug-dump      yumdownloader

每个都要改,例如:

sudo vi /usr/bin/yum

将第一行被我们更改的连接文件改成python2的连接文件即可:

#!/usr/bin/python2

尝试了一下sudo yum update,仍然提示出错:

File "/usr/libexec/urlgrabber-ext-down", line 28 except OSError, e:

                  ^SyntaxError: invalid syntax

  File "/usr/libexec/urlgrabber-ext-down", line 28    except OSError, e:

                  ^SyntaxError: invalid syntax

  File "/usr/libexec/urlgrabber-ext-down", line 28    except OSError, e:

                  ^SyntaxError: invalid syntax

  File "/usr/libexec/urlgrabber-ext-down", line 28    except OSError, e:

既然他说到/usr/libexec/urlgrabber-ext-down这个文件,那么我们也打开看一看,发现顶部仍然需要改成python2,更改完成后再次执行sudo yum update则没有任何问题。

至此python安装完毕,接下来是pip,仍然是下崽源代码安装,只不过安装的时候要确保是使用python3进行install,源代码从github下载:

wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz

解压后进入目录,使用python3 setup.py install进行安装,别忘了sudo

安装完成后也可以做一个pip的连接,让pip的默认版本为python3:

sudo ln -s /usr/local/python3/bin/pip /usr/bin/pip3

这样,pip2和pip3在计算机中共存了,pip2命令调用pip2,pip命令调用pip3

你可能感兴趣的:(2018-07-07在centos中安装python3及pip3)