Windows C++程序调用包含TensorFlow代码的Python脚本出错问题的解决办法

2017-09-11 19:32:09来源:CSDN作者:ShadowN1ght人点击

分享

在上一篇博文《如何实现Visual Studio C++调用TensorFlow代码》的末尾,我们提到,运行程序时,PyImport_ImportModule("TensorflowTest")可能会出错。出错信息如下:


可以看到,出错的原因是因为触发了threading.py的“assert tlock.locked()”。

如果在命令行中执行pythonTensorflowTest.py,则不会出错。只要在C++程序中调用PyImport_ImportModule("TensorflowTest"),就会出现该错误。总之,这是一个比较诡异的错误,在百度和谷歌上均无法找到该问题的解决方案。

经过跟踪调试,发现是“import tensorflow as tf”这行导入代码触发了异常。进一步跟踪后发现该异常是因为C++程序中调用PyImport_ImportModule("TensorflowTest")时,启动参数和命令行中执行python TensorflowTest.py时的启动参数不一样而导致。

最后测试成功的解决办法是将C:/ProgramFiles/Python35/Lib/site-packages/tensorflow/python/platform/flags.py的代码全部注释掉。

由于篇幅所限,具体的跟踪分析步骤就不列出来了。



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台