如何在 pybind11 中使用基本(“默认”/“内置”;不需要导入)python 方法?
列表、字典和其他一些确实具有内置兼容性,但我专门寻找的方法(打开)不包括通过导入。我知道解决它的一种方法是使用包装“open”的方法创建一个 python 文件,然后像调用任何导入的方法一样调用它,但如果可能的话,我更愿意直接在 C++ 中执行它(使用 pybind)否则半失败的目的。
任何帮助/建议将不胜感激。
问问题
579 次
1 回答
4
你错了。首先,内置名称可以从模块中导入builtins
(在 Python 3 中):
py::object open = py::module::import("builtins").attr("open");
其次,open
也存在于io
模块中,因此您也可以使用与上述行等效的以下行:
py::object open = py::module::import("io").attr("open");
这适用于 Python 3,但最后一行也适用于 Python 2.7。
于 2018-04-27T21:00:57.630 回答