我正在尝试使用安装程序将一个简单的python程序转换成一个独立的可执行文件。 目标是通过电子邮件发送加密信息。 这样做之后,可执行文件无法正常运行,经过思考,我认为问题是pyinstaller在导入方面有问题。 另一个帖子上的解决方案建议删除“from”格式。
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from multiprocessing import Process
from cryptography.fernet import Fernet
如何将这些转换为仅导入? 例如,多处理模块的更改:
from multiprocessing import Process
p = Process(target=x)
至
import multiprocessing
p = multiprocessing.Process(target=x)
我不确定以上是正确的,所以我不知道如何接近其他人。 感谢任何帮助。
你的例子是正确的。 另一个示例,您可以将所有email
导入更改为
import email
并像这样使用电子邮件包的特定部分
foo = email.mime.base.MimeBase()
bar = email.mime.multipart.MIMEMultipart()
...
当您仅导入电子邮件
时,整个电子邮件
名称将在代码中可用。 要使用email
的特定部分,需要具体引用它们:email.foo.bar.x()
就是一个例子。
from x import Y
的不同之处在于,您正在导入email
的特定部分,以便在代码中可用,从而可以直接引用它。
您提供的示例是正确的。 您也可以对其他用户使用该模板。
例如:
如果您像这样导入
import email.mime.base
则可以访问以下内容:
email.mime.base.MIMEBase
我对pyinstaller只有一点经验,但据我所知,它应该不会遇到from x import y
语法的问题。