py2exe и снова отправить библиотеки по электронной почте

Следующий импорт:

import pyodbc, sys, smtplib, os
from datetime import date
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
import email.iterators
import email.generator
from email import Encoders 

Работает нормально при создании exe с py2exe в Python2.6, но не в Python2.5

Следующие модули отсутствуют ['email.Encoders', 'email.Generator', 'email.Iterators', 'email.MIMEText', 'email.Utils', 'email.base64MIME']

Настройка.py:

from distutils.core import setup
import py2exe, glob
import modulefinder

modulefinder.AddPackagePath("mail.mime", "base")
modulefinder.AddPackagePath("mail.mime", "multipart")
modulefinder.AddPackagePath("mail.mime", "nonmultipart")
modulefinder.AddPackagePath("mail.mime", "audio")
modulefinder.AddPackagePath("mail.mime", "image")
modulefinder.AddPackagePath("mail.mime", "message")
modulefinder.AddPackagePath("mail.mime", "application")

setup(
    console=['capfile_tester.py'],
    options = { "py2exe": { "includes": "decimal, datetime, email" } })

Я думал, что исправил проблему, но, к сожалению, мне нужно попробовать python2.5.


person MichalKlich    schedule 20.11.2009    source источник


Ответы (2)


В Py2Exe много багов при компиляции различных модулей внутри exe. У меня у самого была такая проблема. Я предлагаю использовать pyInstaller, который, на мой взгляд, намного лучше и проще в использовании.

person Gabriele Cirulli    schedule 20.11.2009

Была такая же проблема с модулем электронной почты. Несмотря на то, что он предупреждает, что многие модули отсутствуют, но когда я запускаю, я сталкиваюсь только с двумя проблемами: одна с несколькими частями, а другая с текстом. Я заработал, явно включив эти 2 модуля в setup.py:

СТАРЫЙ файл setup.py содержал:

setup(console = ['main.py'])

Новый файл setup.py содержит:

setup(console = ['main.py'], 
      options={"py2exe":{"includes":["email.mime.multipart","email.mime.text"]}})
person K246    schedule 23.07.2015