基本上我想做类似here所述的操作:在嵌入python的应用程序中重定向python输出。最好的答案似乎是this one,因为它只用C / C ++编写(混合Python和C / C ++对我来说似乎并不干净)。
我仍然不满意答案。首先看https://docs.python.org/3/c-api/file.html时,似乎我不应该再使用PyFile_FromFile(..)了,我不确定PyFile_FromFd(..)是否是Python 3的替代品,用红色查看警告。其次我只想将我调用生成的输出重定向到Python函数,例如PyRun_SimpleString(..),而不是整个程序输出。基本上我的应用程序被编译为共享库,加载时应该只重定向它自己的输出。
库的应用程序将是一个自定义Python GUI:一个加载库的GUI,用户可以输入一个字符串,该字符串将被发送到库,它将它提供给PyRun_SimpleString(..)并返回输出。然后,GUI将显示输出。