AttributeError: 'module' object has no attribute 'SMTP_SSL'

  在使用python virtual environment的smtplib的時候,發現smtplib.SMTP_SSL('smtp.163.com', 465)報錯:

>>> import smtplib
>>> smtplib.SMTP_SSL('smtp.163.com', 465)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'SMTP_SSL'

但是在非venv下沒問題,參考了:https://exp.newsmth.net/topic/article/e35eea6efe28f9c03ddae30f6a2fba52,發現可能是import ssl出錯,於是import ssl,報錯:

>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/ssl.py", line 61, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: /lib/x86_64-linux-gnu/libssl.so.1.0.0: version `OPENSSL_1.0.2' not found (required by /home/myname/venv/lib/python2.7/lib-dynload/_ssl.x86_64-linux-gnu.so)

到這裏大概知道是因爲少了ssl庫造成的,於是把這個庫複製到相應的目錄下就行了:

cp /usr/lib/python2.7/lib-dynload/_ssl.x86_64-linux-gnu.so ~/venv/lib/python2.7/lib-dynload

再次使用smtplib.SMTP_SSL('smtp.163.com', 465),無報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章