为什么要在Py_Initialize()之前调用PyImport_AppendInittab()

Why should PyImport_AppendInittab() be called before Py_Initialize()?

本文关键字:调用 PyImport AppendInittab Initialize 为什么 Py      更新时间:2023-10-16

根据文档,PyImport_AppendInittab"应在Py_Initialize()之前调用"

没有解释为什么会出现这种情况,忽略这个建议会产生一个有效的应用程序。那么,既然这是有效的,在什么情况下不起作用呢?

因为文档是这么说的;违反API可能会在今天产生工作应用程序,但明天不会。

你可能会遇到几个问题:

  • sys.builtin_module_namesPy_Initialize中初始化,因此它不会包含您的模块
  • PyImport_AppendInittab不带任何锁,所以如果在多线程应用程序中在Py_Initialize之后调用它,可能会导致内存损坏