Erro de módulos de importação do Python

0

Eu tenho um problema com o python no Ubuntu. Parece que alguns módulos que fazem parte do pacote padrão não podem ser importados. Exemplo em python estou tentando importar as seguintes linhas:

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders

O código gera o erro abaixo:

from email.MIMEMultipart import MIMEMultipart
ImportError: No module named MIMEMultipart

Todos os pacotes foram instalados corretamente por padrão, já que posso acessar os arquivos via shell, mas não diretamente ao executar um arquivo:     python email.py

    
por Yule Msee 11.01.2018 / 07:37

1 resposta

0

Acho que você não está especificando os módulos e os submódulos aferentes corretamente. Você deveria realmente fazer:

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

Eu usei a função help do python para verificar o que o módulo de email contém em "CONTEÚDO DA EMBALAGEM" e deduzi por exemplo que MIMEmultipart é uma classe de mime :

help("email")
help("email.mime.multipart")

Editar:

Uma maneira fácil de encontrar exatamente onde um objeto está em um determinado módulo no Python2 (python3 parece não funcionar com isso) é:

getattr(__import__("<module_name>"), "<object_name>").__dict__["__name__"]

No seu caso, é algo como:

getattr(__import__("email"), "MIMEMultipart").__dict__["__name__"]
getattr(__import__("email"), "MIMEText").__dict__["__name__"]
    
por 15.01.2018 / 13:26