6

根据文档,PyImport_AppendInittab“应该在 Py_Initialize() 之前调用”。

没有解释为什么会这样,忽略这个建议会产生一个工作应用程序。那么,既然这行得通,那在什么情况下会行不通呢?

4

1 回答 1

6

因为文档是这样说的;并且违反 API 可能会在今天产生一个有效的应用程序,但不是明天。

您可能会遇到的几个问题:

  • sys.builtin_module_names在 内初始化Py_Initialize,因此它不会包含您的模块
  • PyImport_AppendInittab不占用任何锁,因此如果您Py_Initialize在多线程应用程序中调用它,您可能会遇到内存损坏
于 2012-09-04T15:10:25.703 回答