【问题标题】:How to use a c++ library with python? [duplicate]如何在 python 中使用 c++ 库? [复制]
【发布时间】:2018-07-16 07:07:35
【问题描述】:

我有一个用 C++ 编写的复杂项目的 .so 文件。有没有办法可以将这个库与 python 一起使用?我不应该对现有的 C++ 文件进行任何代码更改。用 boost.py 围绕每个文件编写 C++ 包装器是唯一的方法吗?这样做会影响代码的运行时间吗?

【问题讨论】:

  • 如果没有很好地解释为什么这两种语言都与您的问题相关,您可能会因为说“C/C++”而投反对票。 (顺便说一句,我没有投反对票。)
  • @NickyC 我编辑了它。

标签: python c++


【解决方案1】:

是的,可以使用 Boost.Python 从 Python 调用 C++ 代码。

Boost Python 库是一个用于连接 Python 和 C++。它允许您快速、无缝地公开 C++ 类 Python的函数和对象,反之亦然,不使用特殊的 工具——只是你的 C++ 编译器。它旨在包装 C++ 接口 非侵入式,因此您不必更改 C++ 代码 一切都是为了包装它,使 Boost.Python 成为公开的理想选择 Python 的 3rd 方库。图书馆使用先进 元编程技术为用户简化了语法,因此 包装代码呈现出一种声明式接口的外观 定义语言 (IDL)。

【讨论】:

  • 这个问题具体说改变c++源代码是不可能的
  • 你看答案了吗?它说您根本不必更改 C++ 代码
  • 当然,但是你读过这个问题吗?我想 OP 知道可以使用 Boost.Python ("*boost.py")。
  • 你阅读过链接的文档 rustyx 吗?
【解决方案2】:

SWIG 是一个选项: SWIG TUTORIAL

虽然调试核心转储会让人非常沮丧:)

【讨论】:

    猜你喜欢
    • 2010-09-22
    • 2020-11-02
    • 2014-12-03
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2011-08-30
    • 2012-02-13
    • 1970-01-01
    相关资源
    最近更新 更多