On 25/11/2015 00:30, Slide wrote:
I have a set of plugins that I am loading from shared libraries on Linux. I
thought I would want to call the initModule function when loading the library,
but I am getting the following error when I do so:
Fatal Python error: PyThreadState_Get: no current thread
Aborted (core dumped)
Can anyone point me to an example of something like this? I am using
BOOST_PYTHON_MODULE in my shared libraries and then loading them at runtime. I
would like to import that module into my main namespace where most of my code
is being run.
If you have a look at the interpreter code (assuming 2.7 series), you'll see
that
PyThreadState *
PyThreadState_Get(void)
{
if (_PyThreadState_Current == NULL)
Py_FatalError("PyThreadState_Get: no current thread");
return _PyThreadState_Current;
}
PyThreadState *_PyThreadState_Current is defined in Python/pystate.c and
initialized as NULL.
In Python/pythonrun.c within Py_InitializeEx() call a new thread state is
initialized and PyThreadState_Swap() sets it.
In short: I'd say you didn't call Py_Initialize() before dlopen()ing the
shared objects.
--
Giuseppe Corbelli
WASP Software Engineer, Copan Italia S.p.A
Phone: +390303666318 Fax: +390302659932
E-mail: giuseppe.corbe...@copangroup.com
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig