pygame è avvitamento fino ctypes
Domanda
import mymodule, ctypes
#import pygame
foo = ctypes.cdll.MyDll.foo
print 'success'
se ho Rimuovere il commento dalla import pygame
questo fallisce con WindowsError: [Errno 182] The operating system cannot load %1
. lo stack frame è in code ctypes pitone, cerca di caricare MyDll. win32 codice di errore 182 è ERROR_INVALID_ORDINAL
. se l'importazione Pygame non c'è, lo script viene eseguito con successo.
Aggiornamento: Se corro fuori del debugger, il% 1 è pieno di 'libpng13.dll', che si trova nella directory di lavoro e referenziato da MyDll, e pygame è certamente caricando qualche versione di libpng. Non ho idea di come avrei risolvere questo.
Soluzione
Questo suona come un conflitto dll. Sembra che import pygame
carica alcune DLL che non è compatibile con una DLL che MyDll
esigenze.
Si dovrebbe cercare di eseguire il debug di questo con Sysinternals ProcessExplorer, può mostrare che le DLL di un processo è stato caricato; cercare diverse DLL in entrambi i casi.
Un altro strumento utile per problemi di debug DLL è il dependencywalker, da www.dependencywalker.com
Altri suggerimenti
Aggiornamento per la cronaca: Credo che c'erano più versioni di libpng carico dai diversi moduli (pygame, e mydll). Ho usato multiprocessing per separare i due moduli e di tutto Dandy.