使用 Python 3.6.9 导入 smtplib 时如何解决错误?
How to resolve the error while importing smtplib using Python 3.6.9?
我想发送带附件的邮件,所以首先我尝试使用 python 3.6 和 pycharm IDE 发送邮件。每次 运行 文件时,我都会收到以下异常。
Traceback (most recent call last):
File "/home/UDHAV.MOHATA/script/test.py", line 11, in <module>
import smtplib
File "/usr/lib/python3.6/smtplib.py", line 47, in <module>
import email.utils
File "/usr/lib/python3.6/email/utils.py", line 28, in <module>
import random
File "/home/UDHAV.MAHATA/script/random.py", line 1, in <module>
import urllib3
ModuleNotFoundError: No module named 'urllib3'
示例代码:
import smtplib
import ssl
subject = "An email with attachment from Python"
body = "This is an email with attachment sent from Python"
sender_email = "***********"
receiver_email = "***************"
password = "********"
message = """\
Subject: Hi there
This message is sent from Python."""
context = ssl.create_default_context()
with smtplib.SMTP_SSL_PORT("smtp.gmail.com", 465, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
确切 python 版本: 3.6.9
我的动机是发送一封带附件的邮件。如果有人知道此导入异常的修复或其他方式。请告诉我。
您将文件命名为 random.py
,这会导致 /usr/lib/python3.6/email/utils.py
中的 import random
导入您自己的脚本而不是标准库 random
模块。反过来,您自己的 random.py
文件导入 urllib3
,这显然没有安装在您的解释器上。
切勿将您的 script/module 命名为与标准库 built-in/module 相同的名称。
要修复此错误,您需要:
- 更改您的
random.py
的名称。
- 安装
urllib3
以便您的脚本可以导入它(如果您真的需要它)
我想发送带附件的邮件,所以首先我尝试使用 python 3.6 和 pycharm IDE 发送邮件。每次 运行 文件时,我都会收到以下异常。
Traceback (most recent call last):
File "/home/UDHAV.MOHATA/script/test.py", line 11, in <module>
import smtplib
File "/usr/lib/python3.6/smtplib.py", line 47, in <module>
import email.utils
File "/usr/lib/python3.6/email/utils.py", line 28, in <module>
import random
File "/home/UDHAV.MAHATA/script/random.py", line 1, in <module>
import urllib3
ModuleNotFoundError: No module named 'urllib3'
示例代码:
import smtplib
import ssl
subject = "An email with attachment from Python"
body = "This is an email with attachment sent from Python"
sender_email = "***********"
receiver_email = "***************"
password = "********"
message = """\
Subject: Hi there
This message is sent from Python."""
context = ssl.create_default_context()
with smtplib.SMTP_SSL_PORT("smtp.gmail.com", 465, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
确切 python 版本: 3.6.9
我的动机是发送一封带附件的邮件。如果有人知道此导入异常的修复或其他方式。请告诉我。
您将文件命名为 random.py
,这会导致 /usr/lib/python3.6/email/utils.py
中的 import random
导入您自己的脚本而不是标准库 random
模块。反过来,您自己的 random.py
文件导入 urllib3
,这显然没有安装在您的解释器上。
切勿将您的 script/module 命名为与标准库 built-in/module 相同的名称。
要修复此错误,您需要:
- 更改您的
random.py
的名称。 - 安装
urllib3
以便您的脚本可以导入它(如果您真的需要它)