[Python] Py_FinalizeEx does not clean up everything when rerun of import openai script?

Discussão em 'Python' iniciado por Stack, Fevereiro 17, 2025.

  1. Stack

    Stack Membro Participativo

    I am coding with CPython library and embedded python into my c++ program. I use python to run scripts and call Py_Initialize and Py_FinalizeEx per run. It works fine until I try to import openai in script. Somehow Py_FinalizeEx does not truly clean up everything before shutdown of python, because on second run of the script, this error is thrown which says I double initialized PyO3:

    Traceback (most recent call last):
    File "E:\VS_ProJectS\x64\Release\Script\AIRequest.py", line 3, in <module>
    import openai
    File "E:\VS_ProJectS\ThirdParty\tool\python\lib\site-packages\openai\__init__.py", line 8, in <module>
    from . import types
    File "E:\VS_ProJectS\ThirdParty\tool\python\lib\site-packages\openai\types\__init__.py", line 5, in <module>
    from .batch import Batch as Batch
    File "E:\VS_ProJectS\ThirdParty\tool\python\lib\site-packages\openai\types\batch.py", line 6, in <module>
    from .._models import BaseModel
    File "E:\VS_ProJectS\ThirdParty\tool\python\lib\site-packages\openai\_models.py", line 24, in <module>
    from pydantic.fields import FieldInfo
    File "E:\VS_ProJectS\ThirdParty\tool\python\lib\site-packages\pydantic\fields.py", line 17, in <module>
    from pydantic_core import PydanticUndefined
    File "E:\VS_ProJectS\ThirdParty\tool\python\lib\site-packages\pydantic_core\__init__.py", line 6, in <module>
    from ._pydantic_core import (
    ImportError: PyO3 modules compiled for CPython 3.8 or older may only be initialized once per interpreter process


    how fix this problem with Py_FinalizeEx()?

    Continue reading...

Compartilhe esta Página