在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错误处理的更多相关文章

  1. python3.X中简单错误处理,和Python2区别

    1.print 1.1 Print是一个函数 在Python3中print是个函数,这意味着在使用的时候必须带上小括号,并且它是带有参数的. >>> print 'hello wor ...

  2. python3中使用python2中cmp函数出现错误

    在python2中我们经常会使用cmp函数来比较一些东西,但是在python3中,你再来使用这个函数的时候,发现就报错了,提示找不到这个函数,这是为啥呢? 答:新版的python已经舍弃这种用法 而在 ...

  3. python 安装中的错误解决

    最近使用python3.5,其中遇到安装中的错误,现在记录下来,提个醒 1 安装setuptools 出现缺少 zlib模块 解决: 1 yum install zlib 2 yum install ...

  4. Python2和Python3中的字符串编码问题解决

    Python2和Python3在字符串编码上是有明显的区别. 在Python2中,字符串无法完全地支持国际字符集和Unicode编码.为了解决这种限制,Python2对Unicode数据使用了单独的字 ...

  5. 详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests

    在python2中,urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: 1.urllib2可以接受一个Request类的实例来设置URL请求的hea ...

  6. python3中使用builtwith的方法(很详细)

    1. 首先通过pip install builtwith安装builtwith C:\Users\Administrator>pip install builtwith Collecting b ...

  7. Python3中性能测试工具Locust安装使用

    Locust安装使用: 安装: python3中           ---> pip3 install locust 验证是否安装成功---> 终端中输入 locust --help  ...

  8. Python “No module named” 以及在Python2中可以导入,但在python3中却出现的原因

    Python “No module named” 以及在Python2中可以导入,但在python3中却出现的原因 原因之1: 例如有这样的一个包和它的模块: Test __init__.py Mod ...

  9. python3中的编码

    python2字符串编码存在的问题: 使用 ASCII 码作为默认编码方式,对中文处理不友好 把字符串分为 unicode 和 str 两种类型,将unicode作为唯一内码,误导开发者 python ...

随机推荐

  1. oraclejdbc

    https://segmentfault.com/q/1010000004952621/a-1020000004955600

  2. 2018-2019-20172329 《Java软件结构与数据结构》第七周学习总结

    2018-2019-20172329 <Java软件结构与数据结构>第七周学习总结 教材学习内容总结 <Java软件结构与数据结构>第十一章-二叉查找树 一.概述 1.什么是二 ...

  3. 冲刺One之站立会议7 /2015-5-20

    2015-5-20 在登陆成功之后要实现的是聊天界面的交互过程,不同的IP进行信息和数据的传递,这方面我们上学期Java实验里面有过相关的内容,我们把它拿过来改了一下格式,试着看能不能成功,目前还没实 ...

  4. java的小学生四则运算

    import java.awt.*; import java.awt.event.*; import java.io.FileNotFoundException; import java.io.IOE ...

  5. Windows服务器安全配置指南

    1).系统安全基本设置 2).关闭不需要的服务 Computer Browser:维护网络计算机更新,禁用 Distributed File System: 局域网管理共享文件,不需要禁用 Distr ...

  6. NodeJs实现客户端登陆

    nodejs的api中有一个process进程对象,process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程.作为一个对象,它对于 Node.js 应用程序 ...

  7. 详解Android微信登录与分享

    Android 使用微信登录.分享功能 具体的文档详情微信官网上介绍(微信官网文档),本人直接按照项目部署步骤进行讲解: 第一步:申请你的AppID: 第二步:依赖 dependencies { co ...

  8. VMWare之——宿主机与虚拟机互相ping通,宿主机ping通另一台机器的虚拟机

    版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处:http://blog.csdn.NET/l1028386804/article/details/52267554 今天给大家带来 ...

  9. requests爬取知乎话题和子话题

    zhihu.py # *_*coding:utf-8 *_* import pymysql import requests from lxml import etree from requests_t ...

  10. php错误报告和调试

    3. 错误报告和调试 常常犯的一个错误是忘记关闭 PHP 错误和数据库错误报告,这样做是有风险的.在任何一个公开的站点,error_reporting 应该设置为0 ,最多只能设置为 E_ERROR, ...