本人使用CentOS7.3安装Python3.6.21。检查是否已经安装了PythonCentos7默认安装了Python2.7.5,因为有些命令需要用到,比如yum,使用的是python2.7.5。使用python-V命令查看Python是否安装:#python-VPython2.7.5然后查看Python可执行文件所在位置:#whichpython/usr/bin/python进入bin目录:#cd/usr/bin/#ls-alpython*lrwxrwxrwx.1rootroot34Aug2508:18python->python2lrwxrwxrwx。1rootroot9Aug1921:32python2->python2.7-rwxr-xr-x。1rootroot7136112016年6月6日,python2.7可以看到可执行文件python指向python2,python2指向python2.7,也就是说系统预装了Python2.7执行的Python命令。安装其他版本的Python,首先执行mvpythonpython.bak命令备份python文件。#mvpythonpython.bak#ls-alpython*lrwxrwxrwx。1rootroot9Aug1921:32python2->python2.7-rwxr-xr-x。1rootroot71362016年11月6日python2.7lrwxrwxrwx。1rootroot7八月19日21:32python.bak->python22。修改yum配置文件,因为yum使用的是CentOS7.3默认安装的Python2.7.5,所以更换成Python3.6.2后无法正常工作。#yumrepolistFile"/usr/bin/yum",line30exceptKeyboardInterrupt,e:^SyntaxError:invalidsyntax所以修改yum配置文件,继续使用Python2.7.5。更改yum脚本的python依赖项#cd/usr/bin#ls-alyum*-rwxr-xr-x。1rootroot8012016年11月15日yum-rwxr-xr-x。1rootroot94292016年11月6日yum-builddep-rwxr-xr-x。1rootroot85822016年11月6日yum-config-manager-rwxr-xr-x。1rootroot76092016年11月6日yum-debug-dump-rwxr-xr-x。1rootroot79032016年11月6日yum-debug-restore-rwxr-xr-x。1rootroot109992016年11月6日yumdownloader-rwxr-xr-x。1rootroot11031November6,2016yum-groups-manager使用vim更改以上文件头,将#!/usr/bin/python改为#!/usr/bin/python2修改gnome-tweak-tool配置文件#vim/usr/bin/gnome-tweak-tool将文件头#!/usr/bin/python改为#!/usr/bin/python2修改urlgrabber配置文件#vim/usr/libexec/urlgrabber-ext-downput该文件的标题#!/usr/bin/python更改为#!/usr/bin/python23。编译环境准备好安装编译Python3.6.2源码的开发包#yumgroupinstall'DevelopmentTools'installpython3.6.2可能会用到依赖#yuminstall-yncurses-libszlib-develmysql-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel4.安装Python3.6.2从官网https://www.获取最新版本的Python3.6.2。python.org/downloads/source/下载tgz.xz包。Python-3.6.2.tar.xz,这是Python的源代码。执行wget命令直接下载到当前文件夹:#wgethttps://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz解包:#xz-dPython-3.6。2.tar.xz解压:#tar-xvfPython-3.6.2.tar.xz解压后出现Python-3.6.2文件夹。#lldrwxr-xr-x。17maxmax40968月25日01:22Python-3.6.2-rw-rw-r--。1maxmax83169280July1711:55Python-3.6.2.tar进入Python-3.6.2文件夹,编译源码#cdPython-3.6.2/#./configure--prefix=/usr/local/python3.6——enable-optimizations首先对上面的参数进行说明:--prefix选项是配置安装的路径。如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/。lib,配置文件默认放在/usr/local/etc,其他资源文件放在/usr/local/share,比较乱。如果配置--prefix,如:./configure--prefix=/usr/local/python3.6可以把所有的资源文件都放在/usr/local/python3.6的路径下而不乱。使用--prefix选项的另一个好处是可以卸载软件或移植软件当某个已安装的软件不再需要时,只需删除安装目录,即可彻底卸载该软件;移植软件只需要将整个目录复制到另一台相同操作系统的机器上即可。当然要卸载程序,也可以在原来的make目录下使用一次makeuninstall,但前提是make文件中指定了uninstall。--enable-optimizations是一个优化选项(LTO、PGO等)用这个flag编译后,性能会进行10%的左右优化,但是这样明显会增加编译时间,需要很长时间。./configure命令执行后,会创建一个文件Makefile,供后面的make命令使用。执行makeinstall后,程序会安装到我们指定的文件中然后执行make命令#make再执行makeinstall命令#makeinstall安装完成后,进入/usr/local/python3.6目录,并且可以看到Python的可执行文件目录bin等相关目录。#cd/usr/local/python3.6#lltotalusage4drwxr-xr-x。2rootroot40968月25日08:07bindrwxr-xr-x。3rootroot24August2508:07includedrwxr-xr-x。4rootroot638月25日08:07libdrwxr-xr-x。3rootroot17August2508:07share进入bin目录,可以看到很多相关的可执行文件,目前只需要关注python3.6,pip3。6.#cdbin#ll总使用量22552lrwxrwxrwx。1根根8月25日08:072to3->2to3-3.6-rwxr-xr-x。1rootroot111August2508:072to3-3.6-rwxr-xr-x.1rootroot252Aug2508:07easy_install-3.6lrwxrwxrwx.1rootroot7Aug2508:07idle3->idle3.6-rwxr-xr-x.1根目录root1098月25日08:07idle3.6-rwxr-xr-x。1rootroot224Aug2508:07pip3-rwxr-xr-x。1根根224Aug2508:07pip3.6lrwxrwxrwx。1rootroot8Aug2508:07pydoc3->pydoc3.6-rwxr-xr-x。1rootroot94Aug2508:07pydoc3.6lrwxrwxrwx。1rootroot9Aug2508:07python3->python3.6-rwxr-xr-x。2rootroot115262248月25日08:06python3.6lrwxrwxrwx。1rootroot17Aug2508:07python3.6-config->python3.6m-config-rwxr-xr-x。2rootroot115262248月25日08:06python3.6m-rwxr-xr-x。1rootroot31078月25日08:07python3.6m-configlrwxrwxrwx。1rootroot16Aug2508:07python3-config->python3.6-configlrwxrwxrwx。1rootroot10Aug.2508:07pyvenv->pyvenv-3.6-rwxr-xr-x。1根根4518月25日08:07pyvenv-3.65。修改软链接配置Python3.6和pip3.6为系统默认#ln-s/usr/local/python3.6/bin/python3.6/usr/bin/python#ln-s/usr/local/python3.6/bin/pip3.6/usr/bin/pip进入/usr/bin目录查看相关软链接配置结果结果:#cd/usr/bin#ls-alpython*lrwxrwxrwx。1rootroot34August2508:18python->/usr/local/python3.6/bin/python3.6lrwxrwxrwx。1rootroot9August1921:32python2->python2.7-rwxr-xr-x。1rootroot71362016年11月6日python2.7lrwxrwxrwx。1rootroot7Aug1921:32python.bak->python2#ls-alpip*lrwxrwxrwx。1rootroot31August2508:21pip->/usr/local/python3.6/bin/pip3.6查看系统默认Python和pip版本:#python-VPython3.6.2#python2-VPython2.7.5#pip-Vpip9.0.1from/usr/local/python3.6/lib/python3.6/site-packages(python3.6)现在系统默认的python版本是Python3.6.2,安装CentOS7.3默认Python2.7.5现在可以使用python2调用。pip也变成了最新版本。到这里CentOS7.3编译安装Python3.6.2就大功告成了!
