龙空技术网

在Linux中编译安装Python3

图图奇异世界 81

前言:

如今大家对“centospython编译”大概比较关怀,咱们都想要知道一些“centospython编译”的相关内容。那么小编同时在网上汇集了一些关于“centospython编译””的相关文章,希望小伙伴们能喜欢,同学们快快来了解一下吧!

在Linux系统中编译安装Python3,我想是一个Python学习者必经的一个环节。

而在CentOS系统中,默认只有Python2,通过yum安装Python3,也同样面临版本落后以及pip3的问题。如果不自己编译安装,还有什么别的方法来一直保持使用最新的版本呢?!除非你用Win系统。

本文介绍如何在CentOS 7系统中,编译安装Python3的方法。

在CentOS中安装Python3需要的依赖库

$ sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel expat-devel gdbm-devel xz-devel db4-devel libpcap-devel

如果系统已经存在上面的某些库,以上安装指令只是对其进行升级,没有别的影响。

安装GCC

CentOS的minimal版本,都没有预装gcc,如果你用的是这两个版本,需要确保系统有gcc编译器可以使用。安装和查看gcc的方法:

$ yum install gcc # install gcc in centos

$ which gcc # check if gcc is there

$ gcc --version # check gcc version

也可以通过安装python的编译环境安装GCC,可以直接安装环境包组的方式来实现

yum groupinstall "Development tools" -y

下载Python3源码并解压

Python3的官方源码下载页面是:

使用curl或wget下载,然后解压:

$ curl -O

或:

$ wget

解压文件

$ tar zxf Python-3.9.1.tgz

执行configure

进入上一步的解压目录,然后执行configure:

$ cd Python-3.9.1

$ ./configure --prefix=/usr/local/python-3.9

然后,你会看到一推checking...在安装Python3需要的依赖包的情况下,不会有错误提示出现。--prefix的作用是给出一个安装路径。

我们可以在configure的时候,增加一个优化参数,--enable-optimizations。增加这个参数,会启动编译器的PGO( Profile guided optimization )优化,后续进行make的时候,Python3会执行一大推很费时费力的test来保证优化没有问题。如果你不赶时间,可以考虑加这个这个参数,因为你可以让Python的解释器的执行速度增加大概10%-20%。

$ ./configure --prefix=/usr/local/python-3.9 --enable-optimizations

make和install

最后,我们执行make和install的指令。

$ make && sudo make install

make install 前要有sudo,因为我们在configure的时候,指定的安装路径为系统路径,不是用户的/home/user路径。

创建符号链接(软连接)

make和install成功之后,Python3就已经安装在了这个路径下:/usr/local/python-3.9。这个路径下的bin目录,包含了我们需要的程序:

$ pwd

/usr/local/python3.9/bin

$ ls -l

创建符号链接的目的,是为了让我们在系统中的任何位置(路径)下,都可以直接输入python3来启动python解释器。为了达到这个目的,我们需要在/usr/bin路径下放置符号链接文件,指向上面的安装路径。

$ sudo ln -s /usr/local/python3.9/bin/python3.9 /usr/bin/python3

$ sudo ln -s /usr/local/python3.9/bin/pip3.9 /usr/bin/pip3

编译安装成功

按照以上步骤,编译安装就成功了,最后我们来做一点检查:

$ readlink /usr/bin/python3

/usr/local/python3.9/bin/python3.9

$ readlink /usr/bin/pip3

/usr/local/python3.9/bin/pip3

$ python3 -V

Python 3.9.1

$ pip3 -V

以上检查了我们创建的符号链接,并运行python3和pip3这两个程序,查看其对应的版本号。注意我们创建的符号链接是python3和pip3,后面都有3,这是为了与系统中的python(版本2)共存。

标签: #centospython编译