zoukankan      html  css  js  c++  java
  • 编译安装Python3.6及以上

    编译安装Python3.6及以上



    前言

    系统环境为centos6或7系统,编译安装python3.6及以上版本需要带上ssl模块,否则后面pip3安装会出现ssl类似的报错。而3.6及以上中的ssl模块需要本机openssl版本为1.0.2及其以上,所以需要先检查openssl版本,用openssl version,本文将介绍低版本OpenSSL和高版本openssl环境下Python3.6及以上版本的编译安装。


    一、依赖安装

    yum install gcc gcc-c++ patch libffi libffi-devel python-devel zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
    

    二、检查OpenSSL

    openssl version
    

    Tips:centos6默认都是低于1.0.2版本的OpenSSL,centos7默认一般都是等于1.0.2版本的OpenSSL。


    三、升级openssl(可选)

    3.1 联网升级

    yum install openssl* -y
    

    3.2 编译升级

    1)说明:openssl编译用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib。(openssl编译安装时间比较久)

    ps:在官网下载openssl-1.1.1g.tar.gz编译安装不通过,原因未知,建议用1.1.1d

    wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
    tar xf openssl-1.1.1d.tar.gz
    cd openssl-1.1.1d
    ./config --prefix=$HOME/openssl shared zlib
    make && make install
    

    2)设置环境变量LD_LIBRARY_PATH

    说明:这一步一定要有!!LD_LIBRARY_PATH环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib' and ‘/usr/lib',那么就需要指定环境变量LD_LIBRARY_PATH。

    echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
    source $HOME/.bash_profile
    

    3)CentOS系统调用python3.7命令 , 例如crond , 需要使用到库 , 建议利用链接到系统库目录中(*此步骤根据实际需求可选)

    ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
    

    四、编译安装Python3.x.x(俩种情况)

    4.1 编译升级openssl的情况下

    tar -zxvf Python-3.7.0.tgz
    ./configure --prefix=$HOME/Py37 --with-openssl=$HOME/openssl
    make && make install
    

    4.2 没有升级或联网升级openssl的情况下

    1)说明:低版本python编译安装可直接加--with-ssl 命令即可安装ssl模块,但python3.6之后此命令好像无法使用,要想安装ssl模块需要变着法子修改配置文件实现。

    cd python源码包路径/Modules/
    vim Setup.dist
    

    2)取消注释这四行

    image-20201106110006021

    3)再编译安装

    yum install -y openssl-devel
    cd ..
    ./configure --prefix=$HOME/Py37
    make && make install
    

    4)安装后如图提示,则表示成功

    image-20201106115024532


    五、给Python添加环境变量(可选)

    说明:此步骤可选,个人用户可以做,给客户安装不用做,告诉客户自己去相应路径下执行即可。

    5.1 软连接方式

    ln -s $HOME/Py37/bin/python3 /usr/bin/python3
    ln -s $HOME/Py37/bin/pip3 /usr/bin/pip3
    

    5.2 只针对当前用户进行变量修改生效

    vim ~/.bashrc
    alias python3='/zzh_gpfs02/home/zzhgroup/chenyuan/software/python3/bin/python3.7'
    alias pip3='/zzh_gpfs02/home/zzhgroup/chenyuan/software/python3/bin/pip3.7'
    source ~/.bashrc
    

    六、升级pip3(需联网)

    pip3 install --upgrade pip
    

    七、测试验证

    7.1 执行python3 , 进入python环境

    python3
    

    7.2 导入ssl模块 , 测试是否安装成功(这里导入后没有回显即成功)

    import ssl
    
  • 相关阅读:
    BSGS模板(互质与不互质) 洛谷P4195、P3846
    整除分块(数论分块)
    洛谷P3327 [SDOI2015]约数个数和——莫比乌斯反演
    模块二
    模块
    二分法 匿名函数
    3.26作业
    函数的递归调用
    yield表达式 三元表达式
    3.25作业
  • 原文地址:https://www.cnblogs.com/cyrus0w/p/13935887.html
Copyright © 2011-2022 走看看