В соответствии с Документация, PyImport_AppendInittab «должен вызываться до Py_Initialize ().»
Нет объяснения, почему это так, и игнорирование этого совета приводит к работающему приложению. Так, так как это работает, при каких обстоятельствах это не будет работать?
С уважением,
Даниил
Потому что в документации так сказано; и нарушение API может привести к работающему приложению сегодня, но не завтра.
Несколько проблем, с которыми вы можете столкнуться:
sys.builtin_module_names
инициализируется в течение Py_Initialize
поэтому он не будет содержать ваш модульPyImport_AppendInittab
не берет никаких замков, поэтому если вы позвоните после Py_Initialize
в многопоточном приложении вы можете получить повреждение памятиДругих решений пока нет …