2024-09-28 03:19:09 发布
网友
我在Kivy编写了一个Python应用程序,它使用C++程序进行高速计算,然后返回一个值,而我的Python应用程序使用了这个值。在
C++程序包在pybd11中,导入到应用程序中,然后从Python调用。在
不看任何代码,我只能推断你的Python代码在等待其他代码之前完成C++代码的完成。这可能意味着以下两种情况之一:
根据Global Interpreter Lock (GIL) — Miscellaneous — pybind11 2.2.3 documentation,使用pybind,应该这样做:
pybind
py::gil_scoped_release release; long_running_method(); py::gil_scoped_acquire acquire;
注意,您需要GIL来访问任何Python机器(包括返回结果)。因此,在发布之前,请确保将所有需要的数据从Python类型转换为C++类型。
不看任何代码,我只能推断你的Python代码在等待其他代码之前完成C++代码的完成。这可能意味着以下两种情况之一:
根据Global Interpreter Lock (GIL) — Miscellaneous — pybind11 2.2.3 documentation,使用
pybind
,应该这样做:注意,您需要GIL来访问任何Python机器(包括返回结果)。因此,在发布之前,请确保将所有需要的数据从Python类型转换为C++类型。
相关问题 更多 >
编程相关推荐