python3中SSLError错误处理
在deepin中安装了python3.6,安装路径为/usr/local/python36,然后通过deepin自带的python2.7的pip安装了virtualenv:
sudo pip install virtualenv
创建python3.6的虚环境:
virtualenv -p /usr/local/python36/bin/python3 .venv/python36
切换到python36虚环境:
. /home/yanwei/.venv/python36/bin/activate
执行pip安装一些软件包:
sudo pip install paramiko
正常完成安装
这个时候打开pycharm,设置好python虚环境配置,发现pycharm使用的python36的虚环境中并不存在刚安装的paramiko模块。一度以为通过sudo执行的pip安装,非root用户无权访问。google来baidu去,都没找到想要的答案。只到自己忽然反应过来执行如下操作:
sudo which pip
# 返回如下:
/usr/local/bin/pip
这个pip的路径并不是我想要的/home/yanwei/.venv/python36/bin/pip这个路径,这是deepin默认的python2.7的pip路径,也就是说我在开始执行sudo pip install paramiko的时候,其实是将paramiko安装在了系统默认的python2.7下面,所以pycharm里找不着这个模块。
于是我执行如下操作:
sudo /home/yanwei/.venv/python36/bin/pip install paramiko
却抛出异常如下:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/
具体解决方法参考如下文档:
https://www.cnblogs.com/mlgjb/p/7976561.html
大概意思就是python3在安装的过程中无法使用openssl,根据网上的一些博客的做法,要进入到python源码包解压后的那个目录下的Modules/Setup,注意Setup这个文件,只有在python完成安装一次之后才会生成这个文件。
将下图中标识的四行取消注释,然后再重新编译即可:

执行编译安装:
sudo make
sudo make install
另外,还需要保证系统安装好了openssl及openssl的开发库:
sudo apt install openssl libssl-dev
至此,重新执行sudo /home/yanwei/.venv/python36/bin/pip install paramiko,然后在pycharm中查看paramiko模块是否安装,这个时候已经恢复正常。
python3中SSLError错误处理的更多相关文章
- python3.X中简单错误处理,和Python2区别
1.print 1.1 Print是一个函数 在Python3中print是个函数,这意味着在使用的时候必须带上小括号,并且它是带有参数的. >>> print 'hello wor ...
- python3中使用python2中cmp函数出现错误
在python2中我们经常会使用cmp函数来比较一些东西,但是在python3中,你再来使用这个函数的时候,发现就报错了,提示找不到这个函数,这是为啥呢? 答:新版的python已经舍弃这种用法 而在 ...
- python 安装中的错误解决
最近使用python3.5,其中遇到安装中的错误,现在记录下来,提个醒 1 安装setuptools 出现缺少 zlib模块 解决: 1 yum install zlib 2 yum install ...
- Python2和Python3中的字符串编码问题解决
Python2和Python3在字符串编码上是有明显的区别. 在Python2中,字符串无法完全地支持国际字符集和Unicode编码.为了解决这种限制,Python2对Unicode数据使用了单独的字 ...
- 详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
在python2中,urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: 1.urllib2可以接受一个Request类的实例来设置URL请求的hea ...
- python3中使用builtwith的方法(很详细)
1. 首先通过pip install builtwith安装builtwith C:\Users\Administrator>pip install builtwith Collecting b ...
- Python3中性能测试工具Locust安装使用
Locust安装使用: 安装: python3中 ---> pip3 install locust 验证是否安装成功---> 终端中输入 locust --help ...
- Python “No module named” 以及在Python2中可以导入,但在python3中却出现的原因
Python “No module named” 以及在Python2中可以导入,但在python3中却出现的原因 原因之1: 例如有这样的一个包和它的模块: Test __init__.py Mod ...
- python3中的编码
python2字符串编码存在的问题: 使用 ASCII 码作为默认编码方式,对中文处理不友好 把字符串分为 unicode 和 str 两种类型,将unicode作为唯一内码,误导开发者 python ...
随机推荐
- 人and绩效and职业道德
人行走在这个世界上 避免不了的是各种悲哀 人就像是一个茶几 上面放满了各种杯具 而要做的是要么把杯具打碎了咽下去,要么被杯具打晕 本布衣 躬耕于南阳 不求闻达于诸侯 每个人都可以选择自己的生活方式 或 ...
- “吃神么,买神么”的第一个Sprint计划(第五天)
“吃神么,买神么”项目Sprint计划 ——5.25 星期一(第五天)立会内容与进度 摘要:logo2出来了,修改过不一样的风格,组内总体评价可以,但是颜色要改,色调没注意,统一决定改成与背景色一致 ...
- 三公网络监督平台APP上线,源代码出售。
- [转帖]脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手 http://www.52im.net/thread-1729-1-1.html 1.引言 网络编程中TCP协议的三次握手和 ...
- UpdateBatch到底是怎么用的?
要使用ADOQuery的UpdateBatch函数,必须将ADOQuery的LockType属性设置成ltBatchOptimistic
- 用友时空B/S表单外挂(接口)程序操作说明文档
用友时空B/S表单外挂(接口)程序 一.B/S表单接口需求 众所周知,用友时空KSOA支持B/S架构.且移动商务.在线门店,都是完全基于B/S架构的. B/S架构的优越性在于没有本地客户端和本地数据, ...
- IE显示对象不支持此属性或方法 的解决方法
用C# 编写的ActiveX控件, 调试时,在世界之窗浏览器里能正确显示,但是不能和JS交互,也没有传说中的错误信息框出现,查了很多文档,后来想问题是不是出在浏览器上,换在IE8里调试,点击交互按钮, ...
- mybatis的mapper参数传递
简单参数传递 简单参数传递是指: 传递单个基本类型参数,数字类型.String 传递多个基本类型参数 parameterType 属性可以省略: 传递单个基本类型参数 SQL语句中参数的引用名称并不 ...
- DAY6-Python学习笔记
前记: 坚持写学习笔记今天是第六天了,今天事情有点多想起来还没写赶快补起来,学习Python已经快一个星期了,大部分的知识点已经跟着廖雪峰老师的教程了解了一下,由于自学能力不强还有很多知识点掌握不牢固 ...
- BZOJ3246 IOI2013Dreaming
如果将森林里每棵树都各自看做一个点,那么最后所连成的树应该是一颗菊花,否则将叶子节点父亲改为根不会更劣. 对于每个点所代表的树,其和根节点相连的点应该是到其他点距离最大值最小的点.这个点显然是直径的中 ...