Ubuntu14.04.6安装Python3.7.0记录

Ubuntu14.04.6安装Python3.7.0记录

需要准备的东西
安装步骤
出问题的时候,再次安装需要
有可能出现的问题和需要注意的事项
参考博文,感谢博主

需要准备的东西:

OpenSSL 1.0.2 / OpenSSL 1.1.1
Python-3.7.0.tar.gz[gzip] / Python-3.7.0.tar.xz[xz]

安装步骤:

一、OpenSSL版本的检查和安装

  1. 检查系统自带的OpenSSL版本

    openssl version
    

    如果OpenSSL的版本为1.0.1,请重新安装OpenSSL 1.0.2 / OpenSSL 1.1.1。

  2. 解压OpenSSL源程序包

    tar xvzf openssl-1.1.1i.tar.gz
    cd openssl-1.1.1i/
    
  3. 解析 ./config

    ./config --prefix=/usr/local/openssl111i no-zlib
    

    这一步一定记得添加 no-zlib,否则会出现Error:

    undefined symbol: SSL_CTX_get0_param
    
  4. 编译 make

    make
    
  5. 安装 make install

    make install
    
  6. 添加环境变量 ~/.bashrc

    vi ~/.bashrc
    

    添加

    export PATH=$PATH:/usr/local/openssl/bin
    

    或者

    echo "export PATH=$PATH:/usr/local/openssl/bin" >> ~/.bashrc
    

    然后

    source ~/.bashrc
    
  7. 设置软连接

    ln -s /usr/local/openssl111i/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl111i/include/openssl /usr/include/openssl
    

    如果出现[libssl.so.1.1/libcrypto.so.1.1]: cannot open shared object file: No such file or directory

    ln -s /usr/local/openssl111i/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
    ln -s /usr/local/openssl111i/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
    
  8. 现在再来看一下OpenSSL的版本

    openssl version
    [result] OpenSSL 1.1.1i  8 Dec 2020
    

二、Python-3.7.0的安装

  1. 由于系统需要,系统自带的Python2.7和Python3.4不能卸载

  2. 解压Python-3.7.0源程序包

    tar xvzf Python-3.7.0.tgz
    cd Python-3.7.0/
    
  3. 解析 ./config

    ./configure --prefix=/usr/local/python370 --with-openssl=/usr/local/openssl111i # 此处应该是OpenSSL的安装路径
    
  4. 修改解析产生的文件 Modules/Setup

    vi Modules/Setup
    
    #Socket module helper for SSL support; you must comment out the other
    #socket line above, and possibly edit the SSL variable:
    SSL=/usr/local/openssl111i # 此处应该是OpenSSL的安装路径
    _ssl _ssl.c \
           -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
           -L$(SSL)/lib -lssl -lcrypto
    
  5. 编译 make

    make
    
  6. 安装 make install

    make install
    
  7. 创建软连接

    ln -s /usr/local/python370/bin/python3.7 /usr/bin/python3
    ln -s /usr/local/python370/bin/pip3.7 /usr/bin/pip3
    
  8. 测试一下

    pip3 list
    [result] 
    Package    Version
    ---------- -------
    pip        21.0
    setuptools 39.0.1
    

出问题的时候,再次安装需要:

  1. 清除软连接:其中包括2个Python软连接和4个OpenSSL软连接

    rm /usr/bin/python3
    rm /usr/bin/pip3
    rm /usr/lib/libssl.so.1.1
    rm /usr/lib/libcrypto.so.1.1
    rm /usr/bin/openssl
    rm /usr/include/openssl
    
  2. 清除Python-3.7.0的安装程序及源程序包

    rm -rf /usr/local/python370/
    rm -rf Downloads/Python-3.7.0
    
  3. 清除OpenSSL 1.0.2 / OpenSSL 1.1.1的安装程序及源程序包

    rm -rf /usr/local/openssl111i/
    rm -rf Downloads/openssl-1.1.1i
    
  4. 删除OpenSSL 1.0.2 / OpenSSL 1.1.1的环境变量

    vi ~/.bashrc
    

    删除

    export PATH=$PATH:/usr/local/openssl/bin
    

有可能出现的问题和需要注意的事项:

  1. 执行pip的时候出现:
    Could not fetch URL https://pypi.python.org/simple/flask/: There was a problem confirming the ssl certificate: Can’t connect to HTTPS URL because the SSL module is not available. - skipping

    这个问题应该是安装Python的时候,执行make之前没有对Modules/Setup进行修改,请回看第11步;

  2. 如果已经修改了Modules/Setup,仍然出现Error:
    “libssl is too old and does not support X509_VERIFY_PARAM_set1_host()”

    在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl。所以可能是你的系统上的OpenSSL版本有点久了,比如我的OpenSSL版本就是1.0.1。

  3. 出现Error:
    [libssl.so.1.1/libcrypto.so.1.1]: cannot open shared object file: No such file or directory.

    这个问题的解决办法是为libssl.so.1.1/libcrypto.so.1.1添加软连接,请回看第6步;

  4. 出现Error:
    undefined symbol: SSL_CTX_get0_param

    这个函数就是zlib源码中的函数,需要重新编译openssl,请回到第3步,并在 ./config 命令的最后加上参数 no-zlib .

  5. 如果出现Error: zipimport.ZipImportError: can’t decompress data: zlib not available.

    apt-get -y install zlib*
    

参考博文,感谢博主:
解决安装python3.7.4报错Can’'t connect to HTTPS URL because the SSL module is not available
centos6.8安装python3.7.3报错Can’t connect to HTTPS URL because the SSL module is not available问题解决…

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值