2010-02-26 12 views
1

Lorsque je tente de transformer mon script dans un fichier exécutable, je reçois cette erreur une fois qu'il est fait:Erreur lors de la transformation .py à .exe

Traceback (most recent call last): 
    File "shd-WinResize.py", line 4, in <module> 
    File "zipextimporter.pyo", line 98, in load_module 
ImportError: MemoryLoadLibrary failed loading win32api.pyd 

J'utilise ce script pour convertir:

from distutils.core import setup 
import py2exe 
import sys 

sys.argv.append('py2exe') 

setup(
    options = {'py2exe': dict(bundle_files=1, optimize=2)}, 
    windows = ["shd-WinResize.py"], 
    zipfile = None, 
    ) 

et voici la source de mon programme:

import pyHook 
import pythoncom 

import win32api 
import win32console 
import win32gui 

hideConsole = win32console.GetConsoleWindow() 
win32gui.ShowWindow(hideConsole, 0) 


def OnKeyboardEvent(event): 
    if event.Ascii == 49: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 1440, 900, True) 
    elif event.Ascii == 50: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 1366, 768, True) 
    elif event.Ascii == 51: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 1280, 1024, True) 
    elif event.Ascii == 52: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 1280, 960, True) 
    elif event.Ascii == 53: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 1280, 800, True) 
    elif event.Ascii == 54: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 1280, 768, True) 
    elif event.Ascii == 55: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 1152, 864, True) 
    elif event.Ascii == 56: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 1024, 768, True) 
    elif event.Ascii == 57: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 800, 600, True) 
    elif event.Ascii == 48: 
     windowFocused = win32gui.GetForegroundWindow() 
     win32gui.MoveWindow(windowFocused, 0, 0, 640, 480, True) 


hm = pyHook.HookManager() 
hm.KeyDown = OnKeyboardEvent 
hm.HookKeyboard() 
pythoncom.PumpMessages() 

ce qui ne va pas avec elle?

Je veux compressé et je veux bundle ... Que dois-je faire?

+0

Essayez de lancer dependencywalker (c'est un téléchargement autonome gratuit) sur l'exécutable résultant pour voir ce qui vous manque ... – ChristopheD

+1

n'est pas la dépendance du win32api.pyd ? – Shady

Répondre

0

PY2EXE dans Windows Vista et Windows 7 est apparemment confus par certaines des DLL qu'il doit importer. Voici la solution, qui a été inspiré par another post:

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(
    options={ 
     "py2exe":{ 
      "dll_excludes":[ "mswsock.dll", "powrprof.dll"], 
      'bundle_files': 1 
     } 
    }, 
    windows = [{'script': "scriptName.py"}], 
    zipfile = None, 
)