我git clone
dpybind11's cmake exmaple。然后我用pip install ./cmake_example
构建了它。我的python文件包含以下内容:
import cmake_example
print(cmake_example.add(1, 2))
这个很好用。现在我想使用pybind11
的解释器。我根据docs中的说明更改了CMakeLists.txt
。以下是我现在的情况:
主.cpp
^{pr2}$CMakeLists.txt文件
cmake_minimum_required(VERSION 2.8.12)
project(cmake_example)
add_subdirectory(pybind11)
add_executable(cmake_example src/main.cpp)
target_link_libraries(cmake_example PRIVATE pybind11::embed)
示例.py
import cmake_example
cmake_example.main()
当我运行上面的python文件时,我得到以下错误:
Traceback (most recent call last): File "example.py", line 2, in cmake_example.main() AttributeError: module 'cmake_example' has no attribute 'main'
我做错什么了?在
我觉得你把两种不同的方法混在一起了。在
嵌入是指将python解释器嵌入到现有的可执行文件中。你所指的文件使它(或试图)很清楚。在
这意味着你应该有一个C/C++可执行文件,你可以从它执行Python代码(在一个文件里面或者作为一个字符串)。在
现在,这是一种方式,看看你的构建目录,你会发现一个cmake_示例二进制文件。运行它,你就会看到指纹。您不能从标准的python解释器中直接导入这个构建的模块,而是可以在从自定义可执行文件(本例中为cmake_)调用的文件中使用它。在
你也可以跑步示例.py更改代码如下:
相关问题 更多 >
编程相关推荐