HTTPSHandler SSL Error
我在服务器ubuntu中,尝试使用pip3,但是出现下面的报错
ImportError: cannot import name 'HTTPSHandler'
通过查询资料,发现报错的原因是,该pip3.5中没有安装好openssl. 我尝试在python3.5中使用import ssl, 确实是会显示下面的报错信息
然后我尝试安装SSL module,我之前在本地是安装过,应该还是比较容易,但是在服务器中却是各种方法都不有效。
尝试1:
首先,我检测服务器中是否有openssl。显示了版本信息,这个可能是在安装服务器的时候就自带了,或者其他人在使用服务器的时候可以用。
$ openssl version
OpenSSL 1.1.1g 21 Apr 2020
然后我尝试了在python2.7和python3.6中,导入import ssl都不会报错。这两个应该是ubuntu安装的时候自带的两个python版本。
然后我尝试了下面的方法,因为服务器中有openssl,而且是我可以接受的版本,我不需要重新下载,因此可能是像下面文章说的那样,是在安装python3.5的时候没有设置ssl
【下面是他文章的解释】
本人查阅资料发现,在./configure过程中,如果没有加上–with-ssl参数时,默认安装的软件涉及到ssl的功能不可用,刚好pip3过程需要ssl模块,而由于没有指定,所以该功能不可用。
解决办法是重新对python3.6进行编译安装,用一下过程来实现编译安装:
cd Python-3.6.2
./configure --with-ssl
make
sudo make installpython3中pip3安装出错,找不到SSL_玩人的博客-CSDN博客_pip3 ssl问题
但是我尝试了一下,并没有成功,报错信息如下:
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_dbm _tkinter
To find the necessary bits, look in setup.py in detect_modules() for the module's name.Failed to build these modules:
_hashlib _ssl.....rm /usr/local/lib/python3.5/lib-dynload/_sysconfigdata.py
rm -r /usr/local/lib/python3.5/lib-dynload/__pycache__
/usr/bin/install -c -m 644 ./Misc/python.man \/usr/local/share/man/man1/python3.5.1
if test -f /usr/local/bin/python3 -o -h /usr/local/bin/python3; \
then rm -f /usr/local/bin/python3; \
else true; \
fi
(cd /usr/local/bin; ln -s python3.5 python3)
if test "3.5" != "3.5m"; then \rm -f /usr/local/bin/python3.5-config; \(cd /usr/local/bin; ln -s python3.5m-config python3.5-config); \rm -f /usr/local/lib/pkgconfig/python-3.5m.pc; \(cd /usr/local/lib/pkgconfig; ln -s python-3.5.pc python-3.5m.pc); \
fi
rm -f /usr/local/bin/python3-config
(cd /usr/local/bin; ln -s python3.5-config python3-config)
rm -f /usr/local/lib/pkgconfig/python3.pc
(cd /usr/local/lib/pkgconfig; ln -s python-3.5.pc python3.pc)
rm -f /usr/local/bin/idle3
(cd /usr/local/bin; ln -s idle3.5 idle3)
rm -f /usr/local/bin/pydoc3
(cd /usr/local/bin; ln -s pydoc3.5 pydoc3)
rm -f /usr/local/bin/2to3
(cd /usr/local/bin; ln -s 2to3-3.5 2to3)
rm -f /usr/local/bin/pyvenv
(cd /usr/local/bin; ln -s pyvenv-3.5 pyvenv)
if test "x" != "x" ; then \rm -f /usr/local/bin/python3-32; \(cd /usr/local/bin; ln -s python3.5-32 python3-32) \
fi
rm -f /usr/local/share/man/man1/python3.1
(cd /usr/local/share/man/man1; ln -s python3.5.1 python3.1)
if test "xupgrade" != "xno" ; then \case upgrade in \upgrade) ensurepip="--upgrade" ;; \install|*) ensurepip="" ;; \esac; \./python -E -m ensurepip \$ensurepip --root=/ ; \
fi
Ignoring ensurepip failure: pip 7.1.2 requires SSL/TLS
因此可以发现,有一些module是无法安装的,其中就包括SSL。
然后我查了一下,python3.6应该是自带SSL,因此只需要在配置时,加上ssl就好了,也就是下面这个代码的作用:./configure --with-ssl。但是3.6和3.5是有区别的,在python3.5中ssl的部分是注解掉的,这也就是我尝试的第二个办法
尝试二:
我修改了python3.5配置文件关于ssl的部分,可以参考文章,具体来说就是修改了这里。【我不知道为什么他是3.6以上,没有尝试使用第一种方法】。但是3.5的也是修改这里。
PS: 我在很多文章里面,他们只修改了第一步,二没有修改.py文件,这次我尝试修改了两个文件
1.修改setup.dist
# 进入python3.6.5源码路径
cd /usr/bin/python3.6.5
# 修改setup.py文件
sido vim Modules/Setup.dist# 修改结果如下:
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/lib/ssl # 你的ssl文件位置
_ssl _ssl.c \-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \-L$(SSL)/lib -lssl -lcrypto
2.修改setup.py文件
# 修改setup.py文件sudo vim setup.py# 修改后结果如下
# Detect SSL support for the socket module (via _ssl)search_for_ssl_incs_in = ['/usr/local/ssl/include','/usr/contrib/ssl/include/openssl'']
3. 重新编译安装
sudo ./configure --enable-optimizations
sudo make -j 2
python3中pip3安装出错,找不到SSL_玩人的博客-CSDN博客_pip3 ssl问题python编译安装后ssl模块无法调用_SitVen的博客-CSDN博客
虽然我全部进行了修改,但是还是在安装python3.5的时候,显示ssl模块无法安装。
尝试3:
我以为是.so文件出现了问题,因此在可以使用ssl的python3.9中拷贝了该文件,并发到了3.5中,并修改了名称。但是没有成功,我猜测的原因是:第一不兼容,第二不是单纯的文件丢失,因此补充好文件是没有用的,因此根本没有进行安装。因此该方法适用于文件丢失的,当然可以从其他服务器进行拷贝,从本地其他版本的python库拷贝可能没用,因此我不是文件丢失,我也没有其他服务器可以用,因此我没有继续任何尝试了。
copy _ssl.cpython-35-x86_64-linux-gnu.so from python3.9 to python3.5 and rename it.
参考: python - pip raises ImportError: cannot import name HTTPSHandler - Ask Ubuntu
尝试4:
直接重新安装一个版本,直接安装一个最新版本给python3.5就好了。就是安装openssl以及库libssl,
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install bless
这些代码可以成功运行,并不会报错,甚至显示没有任何可以更新的内容。结果如下:
但是我测试的时候,在导入import ssl,还是失败的。
参考:Ubuntu安装OpenSSL-良许Linux教程网
失败原因猜测:因为服务器存在多个版本的python,是否在使用apt-get的时候将ssl安装到了其他python版本中,或者其他路径下?
因此我去查了一下,apt-get的默认安装路径,在多个路径下。具体如下:
/var/cache/apt/archives
ubuntu 默认的PATH为
PATH=/home/brightman/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
apt-get install安装目录是包的维护者确定的,不是用户
$ dpkg -L packagename、
dpkg -L +软件包的名字,可以知道这个软件包包含了哪些文件, 这个方法可以列出所有安装后留在系统里的文件
参考:ubuntu中apt-get的默认安装路径。安装、卸载以及查看的方法总结_ifwantwill的博客-CSDN博客_apt list 路径
=> 因此我去查了下openssl确实在 /usr/bin和/usr/local/bin中都有,因此不是第一个问题的原因,因为我自己安装的python是在local那里,默认自带的python是在第一个路径下。为什么后面的路径下会存在一个openssl,可能是因为在之前有人使用和安装python3.9的时候,安装的。
除了该问题,我还有一个困惑,就是服务器是否只需要一个openssl,无论存在多少个python版本,这个问题还没有解决, 如果只需要一个,那么就是python和openssl链接的问题,如果每个python都需要,那么才需要下载和再安装。
我没有找到明确的答案,但是我认为是只需要一个,因为如果我们认为该版本需要升级,那么并不是针对哪个python路径执行,只需要向下面文章一样,手动或者自动的下载一个openssl资源,然后进行安装,如果需要两个版本进行切换,可以进行软链接。但是在链接的时候并没有任何指令是针对python版本。
参考:Ubuntu18.04安装Openssl-1.1.1 - osc_6oerel1o的个人空间 - OSCHINA - 中文开源技术交流社区
尝试5:
使用brew进行更新,其实就是更新下openssl,然后重新编译下python3.5(所需要的版本)就好了。但是由于我使用的服务器的brew 在安装的时候会有2个error,也就是在使用brew更新openssl的时候的指令会报错,但是这令个代码的错误在网上没有任何的信息,所以没有继续尝试该方法。
参考:python - ImportError: cannot import name HTTPSHandler using PIP - Stack Overflow
相关文章:
HTTPSHandler SSL Error
我在服务器ubuntu中,尝试使用pip3,但是出现下面的报错 ImportError: cannot import name HTTPSHandler 通过查询资料,发现报错的原因是,该pip3.5中没有安装好openssl. 我尝试在python3.5中使用import ssl, 确实是会显示下面的报错…...
基于Android的高校食堂餐厅配送系统
需求信息: 商家客户端: 1:登录注册:用户可以通过自己的信息进行账号的注册 2:发布菜单:发布自己经营的美食信息 3:用户订单:查看用户的购买订单 4:订单配送:对…...
Java设计模式-02工厂模式
为什么需要工厂模式,其作用什么?如何实现,代码演示解析优缺点。Q1:为什么需要工厂模式?工厂模式的作用(优点)是什么? 解耦。把对象的创建和使用的过程分开。就是Class A 想调用 Class B ,那么A只是调用B的…...
AXI-Lite 学习笔记
AXI-Lite 学习笔记 参考 FPGA:AXI_Lite总线基础2-1]、第二节 AXI总线介绍、ZYNQ PL与PS交互专题_哔哩哔哩_bilibili AXI-Lite总线系列1 - 基础知识_哔哩哔哩_bilibili AXI4 介绍 AXI4 是ARM公司提出的一种片内总线,描述了主从设备之间的数据传输方式。主…...
77页智慧城市顶层设计方案
【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容:篇幅有限,无法完全展…...
JavaWeb--MavenMybatis基础
JavaWeb--Maven&Mybatis基础1 Maven1.1 Maven简介1.1.1 Maven模型1.1.2 仓库1.2 Maven基本使用1.2.1 Maven 常用命令1.2.2 Maven 生命周期1.3 IDEA使用Maven1.3.1 IDEA配置Maven环境1.3.2 Maven 坐标详解1.3.3 IDEA 创建 Maven项目1.3.4 IDEA 导入 Maven项目1.4 依赖管理1.…...
博客系统--测试用例编写
目录一,整体概览1.1,登录页面测试用例1.2,注册页面测试用例1.3,发布博客功能测试1.4,删除博客功能测试二,具体设计2.1,注册页面测试--等价类法2.2,删除博客功能测试--判定表法一&…...
SpringCloud Alibaba
文章目录🚏 第十七章 SpringCloud Alibaba入门简介🚬 一、为什么使用Alibaba🚭 1、spring netflix进入维护模式🚭 Spring cloud alibaba🚬 二、如何使用?🚬 三、版本对应🚏 第十八章…...
地平线slam算法岗位 面试分享
本专栏分享 计算机小伙伴秋招春招找工作的面试经验和面试的详情知识点 专栏首页:秋招算法类面经分享 主要分享计算机算法类在面试互联网公司时候一些真实的经验 小伙伴自我介绍: 写在前面,南京某炮专,研二上阶段,简历写了两个竞赛和一个项目,一个机器人相关的二等奖,一个…...
32、基于51单片机红外智能垃圾桶系统设计
摘要 随着现代化进程的日益推进,科技越来越发达,人们的生活水平也提高了,城市化程度越来越高,与此同时也带了许多问题,生活垃圾越来越多垃圾设施却不够完善。无论是在公共场合还是家庭厨房的垃圾大都是没有盖或者有盖…...
PIL.Image与cv2之间的常用API汇总
简单介绍 主要是因为经常用到这两个,经常弄混淆,所以,总结一番。持续更新。 from PIL import Image import cv2 as cv import numpy as np import matplotlib.pyplot as plt1、读取文件与写入文件 1.1 Image.open() img_pil Image.open…...
【csdn首发】全网爆火的从零到一落地接口自动化测试
前段时间写了一系列自动化测试相关的文章,当然更多的是方法和解决问题的思路角度去阐述我的一些观点。结合我自己实践自动化测试的一些经验以及个人理解,这篇文章来聊聊新手如何从零到一落地实践接口自动化测试。 为什么要做接口测试 测试理念的演变 早…...
基于应力的拓扑优化的高效3D灵敏度分析代码(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
PMP®十万个为什么(二)
11.我的职位与项目管理并没有多大联系,PMP对我应该就没有什么价值了吧? 其实不然,首先,我们知道项目管理是一个系统性的工作,在一个企业内部如果要把项目管理的工作做好,除了项目团队的工作与管理水平不断提…...
【Linux】生产者消费者模型
🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…...
2023/2/13 蓝桥备战acwing刷题(set的使用、简单推个不等式+差分、快速幂、01背包模板回顾、类似01背包的题)
4454未初始化警告 set计数 #include<iostream> #include<set> using namespace std;int main(){int n,m;cin>>n>>m;set<int> s;int res 0;s.insert(0);while(m--){int l,r;cin>>l>>r;if(s.count(r)0){res;}s.insert(l);}cout<…...
【情人节专属】AI一键预测你和Ta的CP值
如何预测你和心仪的Ta有没有夫妻相?基于华为云ModelArts开发的【一键预测你和Ta的CP值】Demo帮你预测CP指数。该模型利用ssim算法综合计算五官特征相似程度,从而得出CP值。//夫妻相的原理在当今心理学、生物学仍有很大争议,夫妻相指数高并不意…...
一文浅谈sql中的 in与not in,exists与not exists的区别以及性能分析
文章目录1. 文章引言2. 查询对比2.1 in和exists2.2 not in 和not exists2.3 in 与 的区别3. 性能分析3.1 in和exists3.2 NOT IN 与NOT EXISTS4. 重要总结1. 文章引言 我们在工作的过程中,经常使用in,not in,exists,not exists来…...
2023前端面试题——JS篇
1.判断 js 类型的方式 1. typeof 可以判断出’string’,‘number’,‘boolean’,‘undefined’,‘symbol’ 但判断 typeof(null) 时值为 ‘object’; 判断数组和对象时值均为 ‘object’ 2. instanceof 原理是 构造函数的 prototype 属性是否出现在对象的原型链中的任何位置 …...
微服务中API网关的作用是什么?
目录 什么是API网关? 为什么要用API网关? API网关架构 API网关是如何实现这些功能的? 协议转换 链式处理 异步请求 什么是API网关? Api网关是微服务的重要组成部分,封装了系统内部的复杂结构,客户端…...
python爬虫--xpath模块简介
一、前言 前两篇博客讲解了爬虫解析网页数据的两种常用方法,re正则表达解析和beautifulsoup标签解析,所以今天的博客将围绕另外一种数据解析方法,它就是xpath模块解析,话不多说,进入内容: 一、简介 XPat…...
【论文阅读】基于意图的网络(Intent-Based Networking,IBN)研究综述
IBN研究综述一、IBN体系结构1.1 体系结构:1.2 闭环流程:1.3 IBN的自动化程度(逐步向前演进):二、IBN 的实现方式2.1 意图获取:2.1.1 YANG、NEMO2.1.2 Frenetic、NetKAT、LAI2.2 意图转译:2.2.1 iNDIRA系统2.2.2 基于模…...
【云原生kubernetes】k8s service使用详解
一、什么是服务service? 在k8s里面,每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失,重启pod的ip地址会发生变化,此时客户如果访问原先的ip地址则会报错 ; Service (服务)就是用来解决这个问题的…...
Python 数据可视化的 3 大步骤,你知道吗?
Python实现可视化的三个步骤: 确定问题,选择图形转换数据,应用函数参数设置,一目了然 1、首先,要知道我们用哪些库来画图? matplotlib Python中最基本的作图库就是matplotlib,是一个最基础的Python可视…...
CSS基础:盒子模型和浮动
盒子模型 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子,封装HTML元素。 它包括:外边距(margin),边框(bord…...
OpenHarmony使用Socket实现一个TCP服务端详解
点击获取BearPi-HM_Nano源码 ,以D4_iot_tcp_server为例: 点击查看:上一篇关于socket udp实现的解析 查看 TCPServerTask 方法实现: static void TCPServerTask(void) {//连接WifiWifiConnect("TP-LINK_65A8",...
kafka监控工具安装和使用
1. KafkaOffsetMonitor 该监控是基于一个jar包的形式运行,部署较为方便。只有监控功能,使用起来也较为安全(1)消费者组列表 (2)查看topic的历史消费信息. (3)每个topic的所有parition列表(topic,pid,offset,logSize,lag,owner) (4)对consumer消费情况进…...
近期工作感悟
从应届生变为社畜已经半年了,在这里吐槽一下自己的所想给自己看。 首先是心理层面上的,初期大大增加的压力。 我觉得应届生能够来到大厂的,基本都是在大学有去规划学习,对自己技能比较认可的。比如我在学校自学游戏开发ÿ…...
大数据框架之Hadoop:HDFS(三)HDFS客户端操作(开发重点)
3.1 HDFS客户端环境准备 1.根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:D:\javaEnv\hadoop-2.77),如下图所示。 2.配置HADOOP_HOME环境变量,如下图所示。 3&#…...
多模式支持无线监控技术:主动式定位、被动式定位
物联网空间信息与数字技术发展至今,已经催生了一大批优秀的践行者。在日常与商业应用中,室内外定位领域依托于这一技术的发展,更是在近几年风光无限。但是并不是说室内定位与室外定位都已经相当成熟,相对来说,室内定位…...
自有服务器 建网站/赣州seo外包怎么收费
中新网1月21日电 1月21日早,融创中国(01918.HK)公告称,集团全资附属公司融创房地产与武汉中央商务区签订收购协议,以125.53亿元人民币收购其持有的上海泛海建设公司100%股权。 公告指出,被收购公司拥有北京泛海国际项目1号地块与上…...
seo快速排名站外流量推广/精准营销推广方案
2019独角兽企业重金招聘Python工程师标准>>> 快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏…...
北京网站建设怎么样/南昌seo全网营销
2020年注定是不平凡的一年,疫情让整个半导体经历了颇有磨难的半年,但半导体厂商们还是在艰难中寻求突击的机会。在汽车行业,国产汽车智能芯片的自主研发之路亦在滚滚向前,上半年汽车芯片行业发生了两件大事:一是北汽产…...
陇西学做网站/搜狗seo培训
由于昨天在一个大公司面试,被c#中的一个interface给难住了,所以回来以后我就找了这些资料看了一下,有了一点感觉。记录下来,方便以后使用。 c# interface定义:就是以前使用的类似于 API 的东西,别人告诉你一…...
做网站字体用什么格式/短视频推广引流方案
原文:https://www.php.cn/faq/465621.html计算机机器数的三种表示方法是原码、反码和补码;机器数是将符号“数字化”的数,是数字在计算机中的二进制表示形式;机器数有2个特点,分别是符号数字化和其数的大小受机器字长的…...
青海公路建设信息服务网站/sem竞价专员
web应用程序库怎么导入Andreas Herz发布了Verside ,这是一个新的在线开发工具和界面设计器,用于构建数据库驱动的Web应用程序。 Verside建立在Open-jACOB Web应用程序框架上。 Verside在Tomcat Servlet容器上运行,并允许您创建具有完整CRUD功…...