FAQ
Hello,
I've tried to import a script in an embedded python intrepreter but
this script fails when it imports the uuid module. I have a
segmentation fault in Py_Finalize().

Here is a simple program which imitate my problem.

main.c :

#include "Python.h"

void test() {
Py_Initialize();
PyImport_Import(PyString_FromString("uuid"));
Py_Finalize();
}

main(int argc, char **argv)
{
for (i=0 ; i < 10; i++)
test();
}

For my application, I have to call Py_initialize and Py_Finalize
several times so factorizing them in the main function is not an easy
solution for me.

The core which is produced gives me this error :
Program terminated with signal 11, Segmentation fault.
#0 0x00190ef6 in type_dealloc (type=0x291320) at Objects/typeobject.c:
2609
2609 _PyObject_GC_UNTRACK(type);

Thanks for your help
Jerome

Search Discussions

  • Gabriel Genellina at Jun 30, 2009 at 6:02 pm
    En Tue, 30 Jun 2009 13:05:42 -0300, J?r?me Fuselier
    <jerome.fuselier at gmail.com> escribi?:
    I've tried to import a script in an embedded python intrepreter but
    this script fails when it imports the uuid module. I have a
    segmentation fault in Py_Finalize().

    #include "Python.h"

    void test() {
    Py_Initialize();
    PyImport_Import(PyString_FromString("uuid"));
    Py_Finalize();
    }

    main(int argc, char **argv)
    {
    for (i=0 ; i < 10; i++)
    test();
    }

    For my application, I have to call Py_initialize and Py_Finalize
    several times so factorizing them in the main function is not an easy
    solution for me.
    Are you sure you can't do that? Not even using Py_IsInitialized? Try to
    avoid repeatedly calling Py_Initialize - won't work.

    Python 2.x does not have a way to "un-initialize" an extension module
    (that's a big flaw in Python design). Modules that contain global state
    are likely to crash the interpreter when used by the second time. (Python
    3 attempts to fix that)

    --
    Gabriel Genellina
  • Jérôme Fuselier at Jul 1, 2009 at 10:14 am

    On Jun 30, 7:02?pm, "Gabriel Genellina" wrote:
    En Tue, 30 Jun 2009 13:05:42 -0300, J?r?me Fuselier
    <jerome.fusel... at gmail.com> escribi?:


    ? I've tried to import a script in an embedded python intrepreter but
    this script fails when it imports the uuid module. I have a
    segmentation fault in Py_Finalize().
    #include "Python.h"
    void test() {
    ? ? Py_Initialize();
    ? ? PyImport_Import(PyString_FromString("uuid"));
    ? ? Py_Finalize();
    }
    main(int argc, char **argv)
    {
    ? ? for (i=0 ; i < 10; i++)
    ? ? ? ? test();
    }
    For my application, I have to call Py_initialize and Py_Finalize
    several times so factorizing them in the main function is not an easy
    solution for me.
    Are you sure you can't do that? Not even using Py_IsInitialized? Try to
    avoid repeatedly calling Py_Initialize - won't work.

    Python 2.x does not have a way to "un-initialize" an extension module
    (that's a big flaw in Python design). Modules that contain global state
    are likely to crash the interpreter when used by the second time. (Python
    3 attempts to fix that)

    --
    Gabriel Genellina
    Hi Gabriel,
    Thanks for your response. I can modify my code to call
    Py_IsInitialized which I didn't know before and this works well. The
    problem is that I did not own the process which calls Py_Initialize
    and Py_Finalize. I'm able to call Py_Initialize correctly but I can't
    call Py_Finalize so this is not perfect.

    At least I have a temporary solution which is not too bad.
    Thanks,
    Jerome
  • Aahz at Jul 1, 2009 at 10:39 pm
    In article <7d5cfbf0-38d5-4505-a93a-f321d0da74b8 at c36g2000yqn.googlegroups.com>,
    =?ISO-8859-1?Q?Jérôme_Fuselier?= wrote:
    I've tried to import a script in an embedded python intrepreter but
    this script fails when it imports the uuid module. I have a
    segmentation fault in Py_Finalize().
    You may want to also ask on the capi-sig mailing list.
    --
    Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/

    "as long as we like the same operating system, things are cool." --piranha

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedJun 30, '09 at 4:05p
activeJul 1, '09 at 10:39p
posts4
users3
websitepython.org

People

Translate

site design / logo © 2022 Grokbase