【问题标题】:Executing a C++ program from a python program从 python 程序执行 C++ 程序
【发布时间】:2014-04-19 12:47:27
【问题描述】:

这是场景,我必须运行超过 10000 个数据点的聚类算法。我已经预先计算了数据点之间的距离并将它们存储在一个文件中。由于 Python 在 I/O 密集型任务中速度较慢,因此我正在用 C++ 编写此聚类算法。主要问题是聚类算法将运行多次,我必须在 python 代码和 C++ 代码之间切换。像这样的

Read Distances from text_file (C++)
Run Clustering Algorithm (C++)

Use the result of this algorithm in main python code

Run clustering algorithm again (C++)

现在我不想一遍又一遍地读取距离文件,因为它已经花费了大约 17 秒,并且该文件有超过 5 亿个条目。比如暂停执行 C++ 代码并在需要时再次运行代码。那么,这是如何实现的呢??

【问题讨论】:

  • boost::python、cython,或者简单地将代码包装在 C 中并使用 ctypes 调用

标签: python c++ ipc


【解决方案1】:

只是一个想法:

您能否在您的主要 python 程序中运行您的程序的 c++ 部分。您可以通过查看此 [Calling an external command in Python 中的答案来做到这一点。您可以使用适配器设计模式对 c++ 程序中的输出进行预处理,使其与主要 python 程序中使用的数据结构兼容,反之亦然。

【讨论】:

    猜你喜欢
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多