Python3: smtplib模块中SMTP_SSL不可用问题

      写了一个监听网页内容变化发邮件通知的py脚本,在本地Windows运行正常,而放到阿里云CentOS服务器上出现"smtplib模块中没有'SMTP_SSL'成员"的Error。

      起初怀疑服务器上有多个版本Python(此处是2.7与3.6)是不是依赖混乱,但是一想是指定python3执行应该不会出现这么low的问题,并且后面打印依赖路径也证实没有这方面问题。

      一切问题看了源码均能迎刃而解,果断打开了了smtplib.py文件

eca654a08ed2daf18717fcbcfaf026b4b55.jpg

发现这里做了判断,当_have_ssl为True才会定义SMTP_SSL类,反手就看这个变量是如何赋值

1a88b4a32521cc214c79b88da08a8d8083c.jpg

原来会先尝试引入ssl,并且把异常吃了所以表面上看不出错误。那么就安装openssl吧,然而并没有什么X用。经过查询发现需要openssl做前置重装python3,方法如下:

1.进入Python3解压文件中的Module目录

Benz]# cd Python-3.6.6/Module

2.修改Setup文件

Benz]# vim Setup

3.取消一些配置的注释,如下图(已撤销注释)

9d3470b084c67f178e467eae69913caa8f9.jpg

4. 回到解压目录重装python

b224333b1638644c268317632f728346e20.jpg

5.验证(没有报错,成功引入)

3f79efc83a49ce71c9b5b51ae5932376275.jpg

此后py脚本成功运行

1378194704_381111.gif

转载于:https://my.oschina.net/Athrun29/blog/1840564

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值