您的位置:首页 > 编程语言 > C语言/C++

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

2017-09-11 17:11 991 查看
在上一篇博文《如何实现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的代码全部注释掉。

由于篇幅所限,具体的跟踪分析步骤就不列出来了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐