pybind11:AttributeError:尝试从py-fi运行函数时,模块“XXX”没有属性“YYY”

2024-04-25 22:16:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从文件启动函数z测试.py从可执行文件所在的同一文件夹中:

def z(k):
    return 9.

以及呼叫代码:

^{pr2}$

它会像这样崩溃:

terminate called after throwing an instance of 'pybind11::error_already_set'
  what():  AttributeError: module 'test' has no attribute 'z'

模块测试被明确加载,因为如果用C++中的TEST1替换测试,则程序以不同的方式崩溃。另外,如果我用math和sqrt替换test和z,它也可以工作。我如何解决我的问题?在


Tags: instance函数代码pytest文件夹an可执行文件
1条回答
网友
1楼 · 发布于 2024-04-25 22:16:06

我的第一个假设是另一个名为test的模块将首先被加载(隐藏您的test.py)。您可以通过添加

    py::print(module.attr("__file__"));

如果是这样,您还可以将test.py重命名为一个不太常见的名称。在

我编译了你的代码,结果和预期一样。在

相关问题 更多 >