我有一个使用Python库的Windows例程。我从3.6.5和一个静态库开始。得到它的工作。已移至.dll Python库。也可以。移至3.7。不起作用。当我尝试通过先调用PyGILState_Ensure()然后再调用Py_Finalize()关闭嵌入式Python时,它挂起。它挂在对PyGILState_Ensure()的调用上。
所以我退后一步,选择了Python 3.6.6。这也有效。相同的代码,只是一个不同的库。有没有其他人注意到Python 3.7的GIL行为发生了变化?他们在文档中提到他们对GIL进行了一些更改。
答案 0 :(得分:1)
如果您正在使用python 3.6及以下版本,则需要调用PyEval_InitThreads()在python 3.7中不再需要执行此操作,Py_initialize()会为您执行此操作。可能是您的问题吗?