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

在上一篇博文《如何实现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的代码全部注释掉。

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



  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 39
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值