Почему PyImport_AppendInittab () должен вызываться перед Py_Initialize ()?

В соответствии с Документация, PyImport_AppendInittab «должен вызываться до Py_Initialize ().»

Нет объяснения, почему это так, и игнорирование этого совета приводит к работающему приложению. Так, так как это работает, при каких обстоятельствах это не будет работать?

С уважением,
Даниил

4

Решение

Потому что в документации так сказано; и нарушение API может привести к работающему приложению сегодня, но не завтра.

Несколько проблем, с которыми вы можете столкнуться:

  • sys.builtin_module_names инициализируется в течение Py_Initializeпоэтому он не будет содержать ваш модуль
  • PyImport_AppendInittab не берет никаких замков, поэтому если вы позвоните после Py_Initialize в многопоточном приложении вы можете получить повреждение памяти
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]