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

时间:2012-09-04 14:52:48

标签: c++ python

根据the Documentation,PyImport_AppendInittab"应该在Py_Initialize()之前调用。"

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

亲切的问候, 丹尼尔

1 个答案:

答案 0 :(得分:4)

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

您可能遇到的几个问题:

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