当前位置:  开发笔记 > 编程语言 > 正文

从c ++程序调用python进行分发

如何解决《从c++程序调用python进行分发》经验,为你挑选了3个好方法。

我想从我的c ++程序中调用python脚本文件.

我不确定我将分发给谁的人将安装python.

基本上我正在寻找一个我可以使用的.lib文件,它具有类似Apache的分发许可证.



1> bhadra..:

我想从我的c ++程序中调用python脚本文件.

这意味着您希望在您的C++应用程序中嵌入Python.正如在另一个应用程序中嵌入Python中所提到的:

嵌入Python类似于扩展它,但并不完全.不同之处在于,当你扩展Python时,应用程序的主程序仍然是Python解释器,而如果嵌入Python,主程序可能与Python无关 - 相反,应用程序的某些部分偶尔会调用Python解释器运行一些Python代码.

我建议您首先在另一个应用程序中嵌入Python.然后参考以下示例

    在C/C++中嵌入Python:第一部分

    在C/C++中嵌入Python:第二部分

    在多线程C/C++应用程序中嵌入Python

如果你喜欢Boost.Python,你可以访问以下链接:

    使用Boost.Python嵌入Python第1部分



2> roo..:

Boost有一个python接口库,可以帮助你.

Boost.Python的



3> ingomueller...:

有趣的是,还没有人提到pybind11。从他们的文档中:

pybind11是一个轻量级的仅标头的库,它公开了Python中的C ++类型,反之亦然,主要是创建现有C ++代码的Python绑定。它的目标和语法与David Abrahams出色的Boost.Python库相似:通过使用编译时自省来推断类型信息,以最大程度地减少传统扩展模块中的样板代码。自创建以来,该库在很多方面都超越了Boost.Python,在许多常见情况下导致绑定代码大大简化。

具体来说,调用Python函数(称为嵌入)就这么简单(从文档中获取):

#include  // 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
}

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有