linux下编译安装python3

           Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2写的,所以默认版本不要轻易删除,否则系统会崩溃,之前做vts测试轻信了一位热心网友的建议,把系统自带python卸载了,结果系统崩溃。。。真是屋漏偏逢连夜雨,所以在很多时候我们还是要相信自己。如果需要使用最新的Python3,那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可。由于python3和python2差异还是很大的,新手上手直接使用python3就可以了,linux深度定制系统现在大部分还是使用的python2。

  首先去python官网下载python3的源码包,网址:https://www.python.org/

  进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source code,表示源码包,这里选择最新版本3.5.1,当然下面也有很多其他历史版本,点进去之后页面下方可以看到下载链接,包括源码包、Mac OSX安装包、Windows安装包。

我们选择:


linux下编译安装python3_第1张图片
python

下载好之后上传到linux系统,准备安装。

python安装之前需要一些必要的模块,比如openssl,readline等,如果没有这些模块后来使用会出现一些问题,比如没有openssl则不支持ssl相关的功能,并且pip3在安装模块的时候会直接报错;没有readline则python交互式界面删除键和方向键都无法正常使用,至于需要什么模块在make完之后python会给出提示,通过提示进行安装即可装全,下面是需要提前预装的依赖:

yum -y install zlib zlib-devel

yum -y install bzip2 bzip2-devel

yum -y install ncurses ncurses-devel

yum -y install readline readline-devel

yum -y install openssl openssl-devel

yum -y install openssl-static

yum -y install xz lzma xz-devel

yum -y install sqlite sqlite-devel

yum -y install gdbm gdbm-devel

yum -y install tk tk-devel

yum -y install libffi libffi-devel

安装上面这些python内置模块基本上就比较全了,如果后续有其他必要的模块,会继续补充的,接下来可以安装python了,编译过程中会自动包含这些依赖.

我的python源码存放路径为 /usr/python3/  进入此路径下

  释放文件:

                tar -xvzf Python-3.7.1.tgz     

        进入目录:

                cd Python-3.7.1/

  配置编译,因为上面依赖包是用yum安装而不是自己编译的,所以都是安装在系统默认目录下,因此各种选项不用加默认即可生效:

                ./configure --prefix=/usr/python3 --enable-shared CFLAGS=-fPIC

      补充一下:这里加上--enable-shared和-fPIC之后可以将python3的动态链接库编译出来,默认情况编译完lib下面只有python3.xm.a这样的文件,python本身可以正常使用,但是如果编译第三方库需要python接口的比如caffe等,则会报错;所以这里建议按照上面的方式配置

  接下来编译源码:

              make

  执行安装:

            makeinstall

      安装成功之后,安装目录就在/usr/python3

      安装完成之后要简单做一下配置:

            cd /etc/ld.so.conf.d

            vim python3.conf 

            添加lib路径到python3.conf    //python库路径添加到/etc/ld.so.conf配置中,我的路径是:usr/python3/lib

            执行ldconfig生效

  系统中原来的python在/usr/bin/python,通过ls -l可以看到,python是一个软链接,链接到本目录下的python2.7

  我们可以不用把这个删除,不对原来默认的环境做任何修改,只新建一个python3的软链接即可,只是需要执行python3代码时python要改成python3,或者python脚本头部解释器要改为#!/usr/bin/python3

  这里建立有关的软链接如下:

ln-s /usr/python3/bin/python3 /usr/bin/python3

ln-s /usr/python3/bin/pip3 /usr/bin/pip3

  这样就建立好了,以后直接执行python3命令就可以调用python3了,执行pip3可以安装需要的python3模块;另外如果仔细看python安装目录下的bin目录,实际上python3也是个软链接,链接到python3.7.1,这样多次链接也是为了多个版本的管理更加方便,

  python3新版本的安装到此结束。

       

linux下编译安装python3_第2张图片
python

如果没有linux pc可以练手,建议买个华为云或者阿里云,目前双十一阿里云促销,练手用的双核服务器一年99.5还是很不错的。

最后附上我最近很喜欢的一句话:

当痛苦来临的时候不要总问为什么是我来承担这些痛苦,因为快乐来的时候你可没这么问。

2018/10/31

你可能感兴趣的:(linux下编译安装python3)