在 C++ 程序中调用 Python 脚本的时候遇到这个问题:如果 Python 脚本中导入了 keras 包会导致调用失败。经过测试发现是导入 keras 时接收到 "Using XXX Backend" 文本导致的。可以肯定这段文本的打印和其他说明文本性质不一样[1]。有趣的是这个 C++ 程序以 cmd 或 powershell 启动时会出现调用 Python 脚本失败,而以 Git Bash 启动则不会,为什么呢[2]?最后我的解决方式是在 Python 脚本中将 "Using XXX Backend" 这个文本静默掉:
import os
import sys
stderr = sys.stderr
sys.stderr = open(os.devnull, 'w')
import keras
有空再研究[1]、[2]。
网友评论