当前位置: 首页 > article >正文

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 此文章的启发,感谢原作者


http://www.kler.cn/a/380152.html

相关文章:

  • uniapp 使用vue/pwa
  • PHP常量
  • 初始JavaEE篇——多线程(5):生产者-消费者模型、阻塞队列
  • Linux和,FreeRTOS 任务调度原理,r0-r15寄存器,以及移植freertos(一)
  • 【AIGC】如何充分利用ChatGPT:有效提示框架与基本规则
  • 物联网赋能的人工智能图像检测系统
  • Redis 组网方式入门
  • Leetcode 3343. Count Number of Balanced Permutations
  • HTMLCSS:呈现的3D树之美
  • mysql笔记-索引
  • vue经典前端面试题
  • Vue 自定义icon组件封装SVG图标
  • 数据结构----二叉树
  • 请用python写一段训练模型【InsCode AI 创作助手】
  • #Prompt | AI | LLM # 人类如何写出LLM理解的Prompt
  • 使用JavaScript实现新窗口打开并设置sessionStorage的简单指南
  • 批发订货系统的设计、开发及源码实现(PHP + MySQL)
  • java项目之校园资料分享平台(springboot)
  • OpenGL入门005——使用Shader类管理着色器
  • js.轮转数组和旋转链表
  • linux shell脚本学习(1):shell脚本基本概念与操作
  • 递归的相关知识(Java)全面版
  • JavaEE初阶---网络原理之TCP篇(二)
  • [VUE]框架网页开发1 本地开发环境安装
  • 北斗有源终端|智能5G单北斗终端|单兵|单北斗|手持机
  • LINUX_Ubuntu终端安装tools的命令