python3虚拟环境中解决 ModuleNotFoundError: No module named '_ssl'

前提是已经安装了openssl

问题

当我在python3虚拟环境中导入ssl模块时报错,报错如下:

(py3) [root@localhost Python-3.6.3]# python3
Python 3.6.3 (default, Nov 19 2018, 14:18:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/local/python3/lib/python3.6/ssl.py", line 101, in <module>import _ssl             # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'

解决办法如下:

1.首先进入Python-3.6.3目录,就是你解压后安装python3.6的目录文件。
2. cd 到  Modules 目录里,找到Setup和Setup.dist文件,将下面几行注释去掉。

  • Setup下更改
  • vim Setup   (大概在51%的位置)
    1493082-20190725152716256-828228405.png

  • Setup.dist下的更改
  • vim Setup.dist (大概在50%的位置)
    1493082-20190725152736135-1432221283.png

3.编译安装

cd ..
./configure --prefix=/usr/local/python3
make
make install

4.删除旧的软连接,创建新的软连接(很重要)

rm -rf /usr/bin/python3
ln -s /usr/local/bin/python3.6 /usr/bin/python3

5、删除之前的虚拟环境,重新创建一个新的虚拟环境,导入ssl包就ok了

# 删除之前建议先将之前的安装的包导出
# 进入虚拟环境
source py3/bin/activate
# 备份文件
pip freeze > requirements.txt
# 退出虚拟环境
deactivate
# 删除虚拟环境
rm -rf py3
# 创建新的虚拟环境
virtualenv py3 -p /usr/bin/python3
# 进入到新的虚拟环境中
source py3/bin/activate
# 导入ssl包
(py3) [root@localhost /]# python
Python 3.6.3 (default, Nov 21 2018, 22:23:54)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>># 恢复之前的python环境
pip install -r requirements.txt

若用到uwsgi,且需要import ssl,则需要把之前uwsgi卸载,重新编译安装

pip3 uninstall uwsgi
sudo pip3 install uwsgi -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
# 删除原来的软链接,设置新的软链接
sudo ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

转载于:https://www.cnblogs.com/Paul-watermelon/p/11244600.html

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

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

相关文章

通过Xshell登录远程服务器实时查看log日志

主要想总结以下几点&#xff1a; 1.如何使用生成密钥的方式来登录Xshell连接远端服务器 2.在远程服务器上如何上传和下载文件&#xff08;下载log文件到本地&#xff09; 3.如何实时查看log&#xff0c;提取错误信息 一. 使用生成密钥的方式来登录Xshell连接远端服务器 ssh登录…

如何将Jupyter Notebook连接到远程Spark集群并每天运行Spark作业?

As a data scientist, you are developing notebooks that process large data that does not fit in your laptop using Spark. What would you do? This is not a trivial problem.作为数据科学家&#xff0c;您正在开发使用Spark处理笔记本电脑无法容纳的大数据的笔记本电脑…

是银弹吗?业务基线方法论

Fred.Brooks在1987年就提出&#xff1a;没有银弹。没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍。 我无意挑战这个理论&#xff0c;只想讨论一个方案&#xff0c;一个可能大幅提高业务系统开发效率的方案。 方案描述 我管这个方案叫做“由基线扩展…

同一服务器部署多个tomcat时的端口号修改详情

2019独角兽企业重金招聘Python工程师标准>>> 同一服务器部署多个tomcat时&#xff0c;存在端口号冲突的问题&#xff0c;所以需要修改tomcat配置文件server.xml&#xff0c;以tomcat7为例。 首先了解下tomcat的几个主要端口&#xff1a;<Connector port"808…

第一章-从双向链表学习设计

链表学习链表是一种动态的数据结构使用节点作为链表的基本单位存储在节点包括数据元素和节点指针一个完整的数据链表应包括转载于:https://www.cnblogs.com/cjxltd/p/7125747.html

思维导图分析http之http协议版本

1.结构总览 在http协议这一章&#xff0c;我将先后介绍上图六个部分&#xff0c;本文先介绍http的协议版本。 2.http协议版本 http协议的历史并不长&#xff0c;从1991的0.9版本到现在(2017)仅仅才20多年&#xff0c;算算下来,http还是正处青年&#xff0c;正是大好发展的好时光…

使用管道符组合使用命令_如何使用管道的魔力

使用管道符组合使用命令Surely you have heard of pipelines or ETL (Extract Transform Load), or seen some method in a library, or even heard of any tool to create pipelines. However, you aren’t using it yet. So, let me introduce you to the fantastic world of…

C# new关键字和对象类型转换(双括号、is操作符、as操作符)

一、new关键字 CLR要求所有的对象都通过new来创建,代码如下: Object objnew Object(); 以下是new操作符做的事情 1、计算类型及其所有基类型(一直到System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字段需要的字节数.堆上每个对象都需要一些额外的成员,包括“类型…

JDBC01 利用JDBC连接数据库【不使用数据库连接池】

目录&#xff1a; 1 什么是JDBC 2 JDBC主要接口 3 JDBC编程步骤【学渣版本】 5 JDBC编程步骤【学神版本】 6 JDBC编程步骤【学霸版本】 1 什么是JDBC JDBC是JAVA提供的一套标准连接数据库的接口&#xff0c;规定了连接数据库的步骤和功能&#xff1b;不同的数据库提供商提供了一…

编译原理—词法分析器(Java)

1.当运行程序时&#xff0c;程序会读取项目下的program.txt文件 2. 程序将会逐行读取program.txt中的源程序&#xff0c;进行词法分析&#xff0c;并将分析的结果输出。 3. 如果发现错误&#xff0c;程序将会中止读取文件进行分析&#xff0c;并输出错误提示 所用单词的构词规…

为什么我们需要使用Pandas新字符串Dtype代替文本数据对象

We have to represent every bit of data in numerical values to be processed and analyzed by machine learning and deep learning models. However, strings do not usually come in a nice and clean format and require a lot preprocessing.我们必须以数值表示数据的每…

递归方程组解的渐进阶的求法——代入法

递归方程组解的渐进阶的求法——代入法 用这个办法既可估计上界也可估计下界。如前面所指出&#xff0c;方法的关键步骤在于预先对解答作出推测&#xff0c;然后用数学归纳法证明推测的正确性。 例如&#xff0c;我们要估计T(n)的上界&#xff0c;T(n)满足递归方程&#xff1a;…

编译原理—语法分析器(Java)

递归下降语法分析 1. 语法成分说明 <语句块> :: begin<语句串> end <语句串> :: <语句>{&#xff1b;<语句>} <语句> :: <赋值语句> | <循环语句> | <条件语句> <关系运算符> :: < | < | > | > | |…

编译原理—语义分析(Java)

递归下降语法制导翻译 实现含多条简单赋值语句的简化语言的语义分析和中间代码生成。 测试样例 begin a:2; b:4; c:c-1; area:3.14*a*a; s:2*3.1416*r*(hr); end #词法分析 public class analyzer {public static List<String> llistnew ArrayList<>();static …

linux boot菜单列表,Bootstrap 下拉菜单(Dropdowns)简介

Bootstrap 下拉菜单是可切换的&#xff0c;是以列表格式显示链接的上下文菜单。这可以通过与 下拉菜单(Dropdown) JavaScript 插件 的互动来实现。如需使用下拉菜单&#xff0c;只需要在 class .dropdown 内加上下拉菜单即可。下面的实例演示了基本的下拉菜单&#xff1a;实例主…

数据挖掘—Apriori算法(Java实现)

算法描述 &#xff08;1&#xff09;扫描全部数据&#xff0c;产生候选1-项集的集合C1&#xff1b; &#xff08;2&#xff09;根据最小支持度&#xff0c;由候选1-项集的集合C1产生频繁1-项集的集合L1&#xff1b; &#xff08;3&#xff09;对k>1&#xff0c;重复执行步骤…

泰晤士报下载_《泰晤士报》和《星期日泰晤士报》新闻编辑室中具有指标的冒险活动-第1部分:问题

泰晤士报下载TLDR: Designing metrics that help you make better decisions is hard. In The Times and The Sunday Times newsrooms, we have spent a lot of time trying to tackle three particular problems.TLDR &#xff1a;设计度量标准以帮助您做出更好的决策非常困难…

背景消除的魔力

图片的功能非常强大&#xff0c;有一图胜千言的效果&#xff0c;所以在文档或演示文稿中使用图片来增加趣味性是一种很棒的想法。但问题是&#xff0c;图片通常会变为文字中间的独立矩形&#xff0c;而不是真正与内容融合在一起。您可以在图片中放置边框或效果&#xff0c;使其…

数据挖掘—BP神经网络(Java实现)

public class Test {public static void main(String args[]) throws Exception {ArrayList<ArrayList<Double>> alllist new ArrayList<ArrayList<Double>>(); // 存放所有数据ArrayList<String> outlist new ArrayList<String>(); // …

特征工程tf-idf_特征工程-保留和删除的内容

特征工程tf-idfThe next step after exploring the patterns in data is feature engineering. Any operation performed on the features/columns which could help us in making a prediction from the data could be termed as Feature Engineering. This would include the…