stefanr
stefanr

Reputation: 111

run py2exe under windows 7, can not excecute file under windows XP

I created a exe-file from my Python+Gtk application using py2exe. With windwos 7 it works, but I can't get it running under windwos XP. I get the following error:

Traceback (most recent call last):
  File "debug4iConnect.py", line 1, in <module>
  File "startApp.pyc", line 1, in <module>
  File "gtk\__init__.pyc", line 40, in <module>
  File "gtk\_gtk.pyc", line 12, in <module>
  File "gtk\_gtk.pyc", line 10, in __load
ImportError: DLL load failed: Impossibile trovare la procedura specificata.

I tried to find missing dlls using dependency-walker and recieved this messages:

LoadLibraryA("c:\......\zlib.pyd") returned NULL. Error: Impossibile trovare il modulo specificato (126).

LoadLibraryExA("c:\.....\gtk._gtk.pyd", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: Impossibile trovare la procedura specificata (127).

"Impossibile trovare la procedura specificata" means: Impossible to find specified procedure. 
"Impossibile trovare il modulo specificato" means: Impossible to find the specified module.

This thread seams to be a similar problem, but the solution doesn't work for me: Py2exe - win32api.pyc ImportError DLL load failed

Has someone an idea what I could do?

UPDATE: I tried dependencywalker again and found some missing dlls:

API-MS-WIN-SECURITY-BASE-L1-1-0.DLL
API-MS-WIN-SECURITY-LSALOOKUP-L1-1-0.DLL
API-MS-WIN-SERVICE-MANAGEMENT-L1-1-0.DLL
API-MS-WIN-SERVICE-MANAGEMENT-L2-1-0.DLL
API-MS-WIN-SERVICE-WINSVC-L1-1-0.DLL
CRYPTBASE.DLL
MSJAVA.DLL,

I added them, and now I get this error:

GetProcAddress(0x00000000, "CtfImmCoUninitialize") called from "c:\windows\system32
\MSCTF.DLL" at address 0x746B279F and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "CtfImmLastEnabledWndDestroy") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B27DC and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "CtfImmSetCiceroStartInThread") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B281F and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "CtfImmIsCiceroStartedInThread") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2864 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "CtfImmIsCiceroEnabled") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B28A9 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "CtfImmIsTextFrameServiceDisabled") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B28E5 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "CtfImmEnterCoInitCountSkipMode") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B292C and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "CtfImmLeaveCoInitCountSkipMode") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2972 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetDefaultIMEWnd") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B29B6 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmReleaseContext") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B29EF and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmNotifyIME") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2A29 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmSetConversionStatus") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2A5C and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetConversionStatus") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2A9A and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetProperty") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2AD6 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetOpenStatus") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2B0A and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetContext") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2B40 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmSetOpenStatus") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2B75 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmInstallIMEA") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2BAC and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetDescriptionA") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2BE2 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetDescriptionW") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2C1A and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetIMEFileNameA") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2C52 and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmGetIMEFileNameW") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B2C8A and returned NULL. Error: Impossibile trovare la procedura specificata (127).
GetProcAddress(0x00000000, "ImmSetHotKey") called from "c:\windows\system32\MSCTF.DLL" at address 0x746B3168 and returned NULL. Error: Impossibile trovare la procedura specificata (127).

When I execute the application I get the error:

Fatal Python error: Interpreter not initialized (version mismatch?)

When I delete zlib.pyd again I get the ImportError above. I found out that my zlib.pyd is from python2.4 and there is no zlib.pyd for 2.7 anymore, it shoul be included in python27.dll. Is this correct?

Upvotes: 0

Views: 2371

Answers (3)

stefanr
stefanr

Reputation: 111

solved: I set "bundle_files": 3 and "skip_archive": True now it works

Upvotes: 1

Ber
Ber

Reputation: 41813

I had this problem too. For me the solution was to exclude the MSWSOCK.dll and POWRPROF.dll libraries from the collection:

setup(
    # other options ommited...
    options={
        "py2exe":{
            "dll_excludes": ["POWRPROF.dll", "MSWSOCK.dll"]
        }
    },
)

This also got rid of all the MS_API_*.dll files.

Upvotes: 0

luc
luc

Reputation: 43096

You can use dependency walker to find the missing dll.

May be you need to install the Visual Studio redistribuables on the XP machine.

Upvotes: 0

Related Questions