Hi There,

We are extending Python interpreter to support  special functions of our
tools. What we did is to compile Python's source code (which is got from the
an installation on a Linux environment for Python 2.3.3) and our extensions
(C++ code) on Windows with Microsoft Visual C++ 6.0 compiler to generate the
extended Python interpreter.

It works well on Linux and for the basic Python modules and our special
modules on Windows. But whenever a ".pyd" module is loaded by a statement
like the following:
    import socket; # which finally calls:  import _socket
or
    import Tkinter; # which finally calls: import _tkinter
or
    import datetime
it hits a "Runtime Error" (which is shown in a message box saying "abnormal
program termination") and a message like the following is printed in the
console:
Fatal Python error: Interpreter not initialized (version mismatch?)


I tried to use Microsoft Visual Studio to debug the program and set a
breakpoint at "Py_FatalError()", but the breakpoint is not hit. I also
traced the loading process of the ".pyd" file in function
"_PyImport_LoadDynamicModule()": the ".pyd" file is correctly located and
loaded, and its "init" function seems be got correctly, but when the
initialization function is called, the above error happens.

I am pretty sure that Python is initialized by "Py_Initialize()", and the
".pyd" files are from the standard Python installation with the same version
(2.3.3).

Does anyone have any idea about the crash? Does the initialization function
from a ".pyd" file require special environment?

Because the ".pyd" files (like "_socket.pyd", _tkinter.pyd" and
"datetime.pyd" etc) are precompiled and contained in the Python installer
for Windows, I don't know how to manually compile them and debug them.

I appreciate your help in advance.

-Terry


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to