提问者:小点点

python如何将“from”的用法转换为仅导入


我正在尝试使用安装程序将一个简单的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)

我不确定以上是正确的,所以我不知道如何接近其他人。 感谢任何帮助。


共2个答案

匿名用户

你的例子是正确的。 另一个示例,您可以将所有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语法的问题。