centos7 安装python3.8运行导入ssl报错,亲测验证有效版

centos安装python3.7时遇到如下问题,查阅知需要的openssl版本最低为1.0.2,但是centos 默认的为1.0.1,所以需要重新更新openssl

import _ssl       # if we can't import it, let the error propagate
ImportError: No module named _ssl

1、安装依赖库:

yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++

2、安装最新版本的openssl
注意!openssl配置是用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib
自行到官网查阅最新版本~

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

$HOME/openssl/ 我的实际路径为 /usr/local/openssl/ ;

3、设置环境变量LD_LIBRARY_PATH

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

设置 /etc/profile也可以;
$HOME/openssl/lib 我的实际路径为 /usr/local/openssl/lib;

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

4、解压python3.7,并安装,一定要指定刚才安装的1.1.1版本的openssl!!!

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

5、至此python3.7就安装完了,来检验下ssl模块能否被导入吧:

[root@izbp12am8wqrn7t6wzgmydz Python-3.7.0]# echo $HOME
/root
[root@izbp12am8wqrn7t6wzgmydz Python-3.7.0]# cd /root/Py37/
[root@izbp12am8wqrn7t6wzgmydz bin]# ./python3
Python 3.7.0 (default, Sep 16 2018, 14:12:43)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> import _ssl
>>>

6.更新python软链接
你要知道系统现在的python的位置在哪儿

[root@izbp12am8wqrn7t6wzgmydz bin]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python.bak /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/local/python /usr/share/man/man1/python.1.gz

7、报错error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

解决办法:
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
ldconfig 此步骤不可少,让配置生效
ldd /usr/local/openssl/bin/openssl 此步骤用于验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端早早聊直播回顾】Harmony 时代的跨端方案

上周末,凡泰极客CTO - 徐鹏受邀出席「前端早早聊」直播活动,并以【跨端新挑战-鸿蒙时代的跨端】为主题进行演讲。 摘取部分分享实录: 终端系统的数量和种类不断增长,开发者面临着多平台开发的挑战。以往开发者一般只需要维护iOS、…

2024年3月阿里云服务器大规模价格下调后优惠折扣表

阿里云服务器ECS等核心产品价格全线下调,最高幅度达55%,2024年3月1日生效,针对ECS部分在售产品的官网折扣价、ECS计算型节省计划进行调整,生效后,基于官网折扣价的新购和续费,将按照新的价格进行计费。阿里…

程序媛的mac修炼手册-- Node.js入门篇

最近因为参与一个微信小程序的开发,开始摸索JavaScript。期间,需要基于Node.js安装微信开发工具的依赖项,所以又顺带学习了Node.js的包管理工具npm(Node Package Manager)。不过,之前看到国外的全栈大佬​​…

flutter学习(一) 安装以及配置环境

首先需要下载flutter,然后解压 然后配置环境变量,配置到bin目录就行 配置完之后cmd运行flutter doctor 你就会发现,都是错 此时脑海里响起,卧槽,怎么回事,咋办 别着急,我教你。。。 问题 这…

RK3568 RK809电源管理 RTC功能使能 定时唤醒

概述 RK809 是一款高性能 PMIC,RK809 集成 5 个大电流 DCDC、9 个 LDO、2 个 开关SWITCH、 1个 RTC、1个 高性能CODEC、可调上电时序等功能。 系统中各路电源总体分为两种:DCDC 和 LDO。两种电源的总体特性如下(详细资料请自行搜索): DCDC:输入输出压差大时,效率高,但…

python学习笔记 - 标准库常量

Python 中有一些内置的常量,它们是一些特殊的值,通常不会改变。以下是其中一些常见的内置常量及其详细解释以及使用示例: True: 表示布尔值真。给 True 赋值是非法的并会引发 SyntaxError。 x True print(x) # 输出&#xff1a…

内网穿透 nas/树莓派+ipv4服务器 (ipv6)

nas 1.有个服务器 2.有个nas https://github.com/snail007/goproxy/blob/master/README_ZH.md https://github.com/snail007/proxy_admin_free/blob/master/README_ZH.md 2个官网一个是程序,一个是网站 手册 https://snail007.host900.com/goproxy/manual/zh/#/?i…

Unity3D Shader事项法线贴图功能详解

前言 Unity3D它提供了丰富的功能和工具,使开发人员能够轻松创建出色的游戏和应用程序。其中Shader是Unity3D中非常重要的一部分,它可以帮助开发人员实现各种视觉效果,包括法线贴图功能。 对惹,这里有一个游戏开发交流小组&#…

rocketmq+rocket-dashboard win10安装部署+注册为Windows服务

1.1 首先去官网下载zip包 选择自己需要的版本 下载 | RocketMQ 1.2 、下载后,解压到指定目录 1.3、配置RocketMQ环境变量 注意,看对应的版本需要jdk版本 1.4、启动mqnameserver 进入bin目录下,双击启动mqnamesrv.cmd 启动后,…

灰度图像转化为黑白图像、转化图像为一位位深度的图像(仅保留黑色)

/// <summary> /// 灰度图像处理 /// </summary> public class PicGray {/// <summary>/// 获取pic图像对应的黑白图像/// </summary>/// <param name"pic"></param>/// <param name"NumGray">像素灰度值</p…

webpack5基础--02_基本配置( 5 大核心概念)

基本配置 在开始使用 Webpack 之前&#xff0c;我们需要对 Webpack 的配置有一定的认识。 5 大核心概念 entry&#xff08;入口&#xff09; 指示 Webpack 从哪个文件开始打包 output&#xff08;输出&#xff09; 指示 Webpack 打包完的文件输出到哪里去&#xff0c;如何…

Vue项目构建时遇到的问题

Vue项目构建时遇到的问题与上线相关问题 项目构建遇到的问题构建指令关于JavaScript文件无法识别的问题关于element-plus组件库中的模块显示找不到的问题关于路由懒加载时组件路径报错问题关于项目静态资源基准路径的设置关于路由模式的问题 关于nginx服务器的使用 项目构建遇到…

事物管理(黑马学习笔记)

事物回顾 在数据库阶段我们已学习过事务了&#xff0c;我们讲到&#xff1a; 事物是一组操作的集合&#xff0c;它是一个不可分割的工作单位。事务会把所有的操作作为一个整体&#xff0c;一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功&#xff0c;要么同时…

java实现根据 表索引 批量新增或更新数据信息

目的 通过数据库名、表名实现动态添加活更新数据。添加或更新由唯一索引判断。 实现 思路 查询数据库表的唯一索引-CSDN博客 根据数据库表名动态查询表字段-CSDN博客 达梦数据库根据唯一索引批量新增或更新数据-CSDN博客 将数据转换为sql语句需要的格式 完善代码&#xff0c;实…

maven常用打包命令

1.背景 2.代码 1 mvn常用命令 一般情况下对于一个maven项目&#xff0c;cd切换到当前项目路径下&#xff0c;执行如下示例命令即可对项目进行打包。 mvn clean install mvn -U clean package -Dmaven.test.skiptrue mvn clean package -Dmaven.test.skiptrue -P prod mvn cle…

JavaScript数组操作指南:20个精通操作技巧指南

splice、 slice、 pop 和 shift。数组的排序方法是稳定且非原地算法的吗&#xff1f;要记住所有 JavaScript 数组方法以及它们之间的区别并不容易。它们的名称相似&#xff0c;就好像直接从同义词词典中提取一样。 这个数组速查表列出了 JavaScript 中通常需要的所有数组方法&…

Gson使用Object接收长数字问题

近期发现公司同事在使用Gson对数字进行反序列列化时出现丢失精度的问题&#xff0c;在这里搬运一下&#xff0c;做个记录~ 现象 使用Gson反序列化长Long数字(大于16位),如果用Object类型来接收则会丢失精度。 Gson会将数字反序列化为double类型,double类型本身就容易丢精度。…

小程序基础

小程序基础 1. 认识什么是小程序 什么是微信小程序 微信小程序是一种运行在微信内部的 轻量级 应用程序。 在使用小程序时 不需要下载安装&#xff0c;用户 扫一扫 或 搜一下 即可打开应用。它也体现了 “用完即走” 的理念&#xff0c;用户不用关心安装太多应用的问题。它…

weak的实现原理

iOS 在运行时维护着一个全局的弱引用表&#xff0c;该表是一个 hash 表&#xff0c;hash表的 key 是 对象本身&#xff0c;value 是指向该对象的所有 weak 指针的地址数组。 /**全局的弱引用表&#xff0c;本质是一个hash结构&#xff0c;对象本身作为key, 存储weak修饰的指…

大模型训练经验

1.模型训练好后预测全是起始符号。 解决办法&#xff1a;训练数据的输入输出去掉起始符号。 2.模型训练后学不到有效信息。 加大epoch&#xff0c;我加大到了1000。 3.模型训练后预测没有结束符&#xff0c;暂时未解&#xff0c;另外&#xff0c;发现当训练不足时&#xff…