Нет, конвертеры - это одна из вещей, которую PEP класса данных решил не реализовывать, чтобы сохранять их просто. http://www.attrs.org/en/stable/why.html#data-classes упоминает еще несколько.
DC являются строго подмножеством attrs
, и вряд ли это когда-либо изменится.
Если Вы не должны работать с py2exe, bbfreeze работы лучше, и я попробовал его почтовым модулем. http://pypi.python.org/pypi/bbfreeze/0.95.4
Взгляните на этот вопрос how-to-package-twisted-program-with-py2exe, это, кажется, та же проблема.
Ответ, данный там, должен явно включать модули в командную строку к py2exe.
Какую версию Python Вы используете? Если Вы используете 2.5 или 2.6, то необходимо делать импорт как:
import string,time,sys,os,smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import Encoders
Я вполне уверен, что modulefinder py2exe может правильно найти почтовый пакет, если Вы используете его правильно (т.е. используете вышеупомянутые имена в Python 2.5 + или используете старые названия в Python 2.4-). Конечно, сценарий установки SpamBayes не должен явно включать почтовый пакет, и он включает почтовые модули без проблемы.
Другие ответы корректны в этом, если действительно необходимо конкретно включать модуль, Вы используете, "включает" опцию, или через командную строку или через передачу их в когда Вы установление вызова.
Используйте, "включает" опцию. См.: http://www.py2exe.org/index.cgi/ListOfOptions
при переносе моего приложения с py24 на 26 у меня была такая же проблема.
После прочтения http://www.py2exe.org/index.cgi/ExeWithEggs если окончательно найдено следующее решение: