繁体   English   中英

在我在 bash 中运行的 python email 脚本中,在尝试运行它之后它给了我这个“'电子邮件'不是包”错误。 有任何想法吗?

[英]In my python email script running in bash, after attempting to run it it gives me this “'email' is not a package” error. Any ideas?

我发现这个 email 发送 python 脚本以在 bash 中使用,我在任何地方都找不到与此相关的帮助,所以这是脚本:

FROM = "example"
TO = ["example"] # must be a list

SUBJECT = "Subject"
TEXT = "Your Text"

# Prepare actual message
message = """From: %s\r\nTo: %s\r\nSubject: %s\r\n\

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)

# Send the mail
import email
import smtplib
server = smtplib.SMTP(smtp.example.com)
server.sendmail(FROM, TO, message)
server.quit()

我的目标是让这个脚本在 bash 中运行并将 email 发送给收件人。 在用准确的电子邮件替换“示例”后运行它时出现的错误是:

ImportError: No module named 'email.utils'; 'email' is not a package

编辑:这是输出的内容:

    """ % (FROM, ", TO, SUBJECT, TEXT)
                                     ^
SyntaxError: EOL while scanning string literal
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 21, in <module>
    from urllib.request import urlopen
  File "/usr/lib/python3.5/urllib/request.py", line 86, in <module>
    import email
  File "/home/user/email.py", line 15, in <module>
    import smtplib
  File "/usr/lib/python3.5/smtplib.py", line 47, in <module>
    import email.utils
ImportError: No module named 'email.utils'; 'email' is not a package

Original exception was:
  File "mailtest.py", line 21
    """ % (FROM, ", TO, SUBJECT, TEXT)
                                     ^
SyntaxError: EOL while scanning string literal

这是一个脚本,如果您将它放在与当前程序相同的目录中,它应该会复制问题。

测试.py

import email
print("email module path:", email.__file__)
import smtplib

我试图通过在同一目录中创建一个名为email.py的脚本来复制您的环境。 当我运行test.py时,我得到了你的错误

~/tmp$ touch email.py
~/tmp$ python test.py
email module path: /home/td/tmp/email.py
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    import smtplib
  File "/home/td/anaconda3/lib/python3.7/smtplib.py", line 47, in <module>
    import email.utils
ModuleNotFoundError: No module named 'email.utils'; 'email' is not a package
~/tmp$ 

请注意,email 模块路径不是 python 的 email package。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM