我有一个C++程序,其中嵌入了pybind11的Python解释器。执行以下Python文件时,它会直接输出到
我该如何在不修改 Python 代码的情况下,仅使用 print() 语句将 Python sys.stdout 重定向到 C++ 中作为 std::string?我发现的其他解决方案需要修改 Python 文件。
std::cout
。# test.py
print("text")
#include <pybind11/embed.h>
namespace py = pybind11;
int main() {
py::scoped_interpreter guard{};
py::eval_file("test.py");
}
我该如何在不修改 Python 代码的情况下,仅使用 print() 语句将 Python sys.stdout 重定向到 C++ 中作为 std::string?我发现的其他解决方案需要修改 Python 文件。