RHEL7.4编绎安装Python 3.7

2020-09-22 0 362 百度已收录

Linux下大部分系统默认自带Python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如CentOS下的yum就是python2写的,所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可。

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

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

RHEL7.4编绎安装Python 3.7

这里选择第一个下载即可,下载的就是源码包:Python-3.7.0.tgz,下载好之后上传linux系统,准备安装

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

yum -y install gcc zlib zlib-devel
bzip2 bzip2-devel
ncurses ncurses-devel
readline readline-devel
openssl openssl-devel
xz xz-devel
sqlite sqlite-devel
gdbm gdbm-devel
tk tk-devel
libffi-devel

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

# tar -xf Python-3.7.0.tgz

进入目录:

# cd Python-3.7.0

配置编译

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

./configure –prefix=/usr/python –enable-shared CFLAGS=-fPIC

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

接下来编译源码:

make

执行安装:

make install

整个过程大约5-10分钟,安装成功之后,安装目录就在/usr/python

关于在rhel7下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named ‘_ctypes’的解决办法
3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可
#yum install libffi-devel -y
#make install

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

        即将python库路径添加到/etc/ld.so.conf配置中,然后执行ldconfig生效(切记);或者添加到$LD_LIBRARY_PATH中,这样在接下来运行python3是就不会报找不到库文件的错误了。

        我看到这个文件实际上是包含了/etc/ld.so.conf.d/这个目录下的所有.conf文件,因此我们可以在这个路径下面创建一个新的文件(python3.conf),其中写上诸如“/usr/local/lib”、“/usr/local/mysql/lib”的路径,保存退出。

#vi /etc/ld.so.conf.d/python3.conf
/usr/python/lib

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

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

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

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

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

  python3新版本的安装就是这些,因为我们之前安装了完整的依赖,所以下面问题不存在了,忽略即可,其中的python readline模块也早已经停止更新了,会出现崩溃问题;这里基础环境都是使用系统的依赖,更稳定。

更多Python相关信息Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 RHEL7.4编绎安装Python 3.7 https://www.lizi.tw/soft/15028.html

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

RHEL7.4编绎安装Python 3.7-海报

分享本文封面