[python-win32] 'import win32com' fails from within an
embeddedinterpreter
Mark Hammond
mhammond at skippinet.com.au
Fri Jan 28 23:43:36 CET 2005
> I'm hoping someone can give me some advice, or point me in a
> helpful direction.
>
> I've embedded python 2.4 within an application that needs to
> connect with
> MS Excel.
> I've written the python code to communicate with Excel and
> tested it from
> the python
> command line interpreter. It works great! However, when I
> attempt to
> import win32com
> from within the embedded interpreter I get the following:
>
> "Fatal Python error: Can not setup interpreter state, as
> current state is
> invalid"
You need to look into the PyGILState_* functions. These functions allow you
to acquire the thread-lock before calling into Python.
Your code will look something like:
PyGILState_STATE old_state = PyGILState_Ensure()
// you can now safely call Python functions from this thread.
// When all your Python work is complete...
PyGILState_Release()
// The lock for this thread has now been released. This thread can
// no longer safely call Python functions until the lock is re-acquired.
Mark
More information about the Python-win32
mailing list