My python project has a C ++ component that compiles and distributes as a .pyd file inside a Python egg. I noticed that this seems incompatible only with some of our brand new 64-bit Windows servers. We have 4 (presumably) equally prepared machines - each of them runs a 64-bit version of the Windows 2003 server, but 2 of these machines do not allow me to call functions in an egg.
After some experimentation, I was able to find a recipe for creating a reproducible error . The problem occurs when Python tries to import the pyd file.
I copied pyd to a temporary folder and ran Python.exe from this place, by the way, we are still using the 32-bit version of Python 2.4.4, since none of our libraries have yet been ported to the 64-bit architecture. Then I try to import my module (called pyccalyon). The first time I try this, I get an error message:
"ImportError: DLL load failed: The specified module could not be found"
The next time I try this, the python interpreter will fail: no stacktrace at all!
Naturally, you suspect my PYD - the strange thing about this is that it is already used on thousands of computers and 10 other servers, many of which are identical to 64-bit machines. The project is constantly tested both in development and after release, therefore, if this thing was so unstable that we would have known about this for a very long time. This component is considered stable code, so it is surprising that it breaks so spectacularly.
Any suggestions on what I can do to debug this complex library? Crazy ideas are welcome at this point, because we have exhausted all reasonable ones.
Thanks!
Update 0 . Good with a process monitor. I was able to compare one 64-bit server that does not work with another, which works fine. I found that the failure seems to be due to the lack of a DLL, SysWOW64 / mscoreee.dll - any idea what this component is and where can I get it? I can take this back to our IT staff who can fix things.
python windows
Salim fadhley
source share