前言:
如今大家对“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编译