gpt4 book ai didi

python - smtplib 中的 "No module named email.utils"与 gui2exe

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:56 32 4
gpt4 key购买 nike

我有一个很好的简单脚本,将电子邮件发送到 Gmail 地址。非常简单,运行后可以在 Python IDLE 中正常工作。

使用 GUI2Exe (使用 py2exe 和 cx_freeze)将其制作为 exe 后,我收到此错误:

Traceback (most recent call last):
File "something.py", line 4, in <module>
File "smtplib.pyc", line 46, in <module>
ImportError: No module named email.utils

它的名称不是email.py,而且我的计算机上没有任何类似的名称(我已阅读有关此问题的所有内容)

我也尝试从 Something.py 和 smtplib.py 中强制使用:

opts = {'py2exe': { "includes" : ["email.utils"] }}

完全没有区别。从 IDLE 运行得很好,但在 gui2exe 之后...错误。

我的 Lib 目录中确实有此电子邮件目录,并且它确实包含 utils。但这是显而易见的,因为从 IDLE 开始,脚本工作正常。

原始脚本:

import smtplib
fromaddr = 'blablu@gmail.com'
toaddrs = 'blipblop@gmail.com'
msg = 'There was a terrible error that occured and I wanted you to know!'

# Credentials (if needed)
username = 'blablu'
password = 'passbla'

# The actual mail send
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

对不起,我现在已经厌倦了这个。我完全不知道发生了什么事。

有人可以告诉我我做错了什么吗?

最佳答案

我尝试直接卡住运行 cx_Freeze 的脚本,它工作得很好。由于 GUI2exe 只是一个图形用户界面,我建议您也尝试直接运行 cx_Freeze,因为这可以消除 GUI2exe 引起的任何可能的问题。

假设您想制作一个命令行应用程序,这是您需要在使用上述代码的文件旁边创建的 setup.py 文件(在 setup.py 中,我假设您的代码称为“smtpTest.py” ”):

import os, sys
from cx_Freeze import setup, Executable

# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {'packages': [],
'excludes': ['tkinter'],
'includes': []}

setup( version = '0.1',
description = 'sends mails',
options = {'build_exe': build_exe_options},
executables = [Executable('smtpTest.py', targetName="smptMailer.exe")])

然后打开命令行并转到存储文件和 setup.py 文件的目录并键入:

python setup.py build

构建过程结束后,您的可执行文件将位于一个名为“build”的新文件夹中。

关于python - smtplib 中的 "No module named email.utils"与 gui2exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16284352/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com