我正在尝试用PyBind在C+中嵌入一些Python代码。大多数文档都是关于用C+扩展Python的,但是我对嵌入感兴趣:
是否可以更改此示例?
cmake_minimum_required(VERSION 3.0)
project(example)
find_package(pybind11 REQUIRED) # or `add_subdirectory(pybind11)`
add_executable(example main.cpp)
target_link_libraries(example PRIVATE pybind11::embed)
使用这个c+文件
#include <pybind11/embed.h> // everything needed for embedding
namespace py = pybind11;
int main() {
py::scoped_interpreter guard{}; // start the interpreter and keep it alive
py::print("Hello, World!"); // use the Python API
}
一个带有makefile的版本?
发布于 2018-06-12 09:33:26
这很简单。需要做以下更改:
Python的python3-config
程序是做第二和第三的最好方法。
例如,如果有一个类似于以下内容的makefile:
%.o: %.cc
$(CXX) -o $@ -c $^
main: main.o
$(CXX) -o $@ $^
然后,需要像这样修改它:
%.o: %.cc
$(CXX) -o $@ -c $^ -Ipath/to/pybind11-2.2.3/include $(shell python3-config --includes)
main: main.o
$(CXX) -o $@ $^ $(shell python3-config --libs)
https://stackoverflow.com/questions/-100004848
复制相似问题