2015-07-16 13 views
1

Мой код:py2exe ImportError: Нет модуль с именем оболочки

from win32com.shell import shellcon 
from win32com.shell.shell import ShellExecuteEx 

И он отлично работает в холостом режиме, но после того, как я сделать ехе я получаю сообщение об ошибке:

File "Myfile.py", line 1, in <module> 
ImportError: No module named shell 

Почему не py2exe импорт win32com.shell?

ответ

4

Следующее может помочь вам: py2exe.org win32com.shell

Ссылка описывает проблему в том, что win32com выполняет некоторую «магию», чтобы разрешить загрузку COM-расширений во время выполнения. Расширения находятся в каталоге win32comext в пакетах сайтов и не могут быть загружены напрямую. Изменена переменная __path__ для win32com, чтобы указать на win32com и win32comext. Это изменение времени выполнения для __path__ отключает модуль-модуль для py2exe, поэтому его нужно заранее сообщить.

Ниже приведен код, предположительно, из исходного кода для SpamBayes который касается того же вопроса, так что подобный подход может работать для вас:

# ... 
# ModuleFinder can't handle runtime changes to __path__, but win32com uses them 
try: 
    # py2exe 0.6.4 introduced a replacement modulefinder. 
    # This means we have to add package paths there, not to the built-in 
    # one. If this new modulefinder gets integrated into Python, then 
    # we might be able to revert this some day. 
    # if this doesn't work, try import modulefinder 
    try: 
     import py2exe.mf as modulefinder 
    except ImportError: 
     import modulefinder 
    import win32com, sys 
    for p in win32com.__path__[1:]: 
     modulefinder.AddPackagePath("win32com", p) 
    for extra in ["win32com.shell"]: #,"win32com.mapi" 
     __import__(extra) 
     m = sys.modules[extra] 
     for p in m.__path__[1:]: 
      modulefinder.AddPackagePath(extra, p) 
except ImportError: 
    # no build path setup, no worries. 
    pass 

from distutils.core import setup 
import py2exe 
# The rest of the setup file. 
+0

Это был один из самых ПОЛЕЗНЫХ коментариев я увиденный в страсти –

Смежные вопросы