自学内容网 自学内容网

centos7 安装python3.9.4,解决import ssl异常

        本篇文章介绍如何在centos7中安装python3.9.4(下文简称python3),解决python3安装后import ssl模块失败问题,为什么我要在centos7中安装python呢,因为我需要在服务器中跑python数据处理脚本。

        安装python3同时解决import ssl模块失败问题总共包括两步,第一步是安装高版本的openssl,第二步是安装python3,下面分别详述。

  1. 安装openssl
            centos7中自带的openssl版本比较低,我没记错应该是1.0.1,python3.9.4需要更高级的版本,我安装的是openssl-1.1.1n

    1. 下载openssl,下载地址为: openssl下载链接
    2. 解压tar包:

    tar -zxvf openssl-1.1.1n.tar.gz

    1. 进入目录:

    cd openssl-1.1.1n

    1. 执行命令

    ./config --prefix=/export/python/openssl shared zlib
    –prefix 设置openssl的安装目录,后续安装python的时候需要

    1. 执行命令

    make && make install

    安装后的效果如下
    在这里插入图片描述
    查看openssl版本的方式如下
    在这里插入图片描述

  2. 安装python3

    1. 安装依赖包

    yum -y groupinstall “Development tools”

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

    1. 下载python3安装包,下载地址
    2. 解压jar包

    tar -xJvf Python-3.9.4.tar.xz

    1. 设置环境变量LD_LIBRARY_PATH

      1. 打开环境变量文件:

      vi ~/.bashrc

      1. 增加如下配置:

      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/export/python/openssl/lib

      1. 使修改生效:

      source ~/.bashrc

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

    2. 进入目录

    cd Python-3.9.4

    1. 执行命令

    ./configure --prefix=/export/python/python3 --with-openssl=/export/python/openssl --enable-shared
    –prefix=/export/python/python3 设置python的安装目录
    –with-openssl=/export/python/openssl 这一步是刚才安装的openssl的目录位置

    1. 执行命令

    make && make install

    1. 进入python安装目录的lib下

    cd /export/python/python3/lib

    1. 拷贝动态链接库

    sudo cp libpython3.9.so.1.0 /usr/lib64/libpython3.9.so.1.0

好了,现在可以试下了,正常情况下应该是这样的
在这里插入图片描述
如果找不到python3,可以把它放到环境变量中再试一下

vi ~/.bashrc
export python_home=/export/python/python3
export PATH=$PATH:$python_home/bin:$python_home/lib

        另外我有些通过pip下载whl包的方法,服务器不能访问外网时,可以离线下载安装,还有一些解决代码执行时,工程里的代码无法像库函数一样被引用的方法,有需要可以参看 : python相关命令

        本篇文章了受到 https://blog.csdn.net/weixin_30951743/article/details/99891139 此文章的启发,感谢原作者


原文地址:https://blog.csdn.net/dydyswr/article/details/143419730

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!