根据documentation , PyImport_AppendInittab “应该在 Py_Initialize() 之前调用。”
没有解释为什么会这样,忽略此建议会产生一个有效的应用程序。那么,既然可以,那么在什么情况下会不行呢?
最佳答案
因为文档是这么说的;违反 API 可能会在今天产生一个可用的应用程序,但明天就不会。
您可能会遇到的几个问题:
sys.builtin_module_names
在Py_Initialize
中初始化,因此它不会包含您的模块PyImport_AppendInittab
不获取任何锁,因此如果您在多线程应用程序中的Py_Initialize
之后调用它,您可能会遇到内存损坏
关于c++ - 为什么要在 Py_Initialize() 之前调用 PyImport_AppendInittab()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12266103/