首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用PyBind在C+中嵌入Python?

如何用PyBind在C+中嵌入Python?
EN

Stack Overflow用户
提问于 2018-06-12 00:04:16
回答 1查看 0关注 0票数 0

我正在尝试用PyBind在C+中嵌入一些Python代码。大多数文档都是关于用C+扩展Python的,但是我对嵌入感兴趣:

是否可以更改此示例?

代码语言:txt
复制
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+文件

代码语言:txt
复制
#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的版本?

EN

回答 1

Stack Overflow用户

发布于 2018-06-12 09:33:26

这很简单。需要做以下更改:

  1. 将pybind 11包含目录添加到包含。
  2. 将Python 3头添加到包含中。
  3. 将Python 3库添加到库中。

Python的python3-config程序是做第二和第三的最好方法。

例如,如果有一个类似于以下内容的makefile:

代码语言:txt
复制
%.o: %.cc
    $(CXX) -o $@ -c $^

main: main.o
    $(CXX) -o $@ $^

然后,需要像这样修改它:

代码语言:txt
复制
%.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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档