Python 如何用C++;?
我有Python代码,它可以执行以下操作:Python 如何用C++;?,python,c++,wrapper,swig,Python,C++,Wrapper,Swig,我有Python代码,它可以执行以下操作: 从仿真软件中获取优化问题 使用多线程IPOPT算法解决此优化问题 将在2中获得的结果转换为另一个维度 以图形的形式显示结果 现在我已经编写了C++中的一个类来解决优化问题(点2),以提高速度和其他一些原因,它从点1(问题、约束等)中得到输出,并给出一个输出,它进一步传递到点3(Python中的函数)。 如何将这些变量从1中获得到2中的C++类,然后在3返回到Python函数?以下是我正在尝试的: 我使用SWIG来生成包装文件。SWIG接口文件,用于创建
现在我已经编写了C++中的一个类来解决优化问题(点2),以提高速度和其他一些原因,它从点1(问题、约束等)中得到输出,并给出一个输出,它进一步传递到点3(Python中的函数)。
如何将这些变量从1中获得到2中的C++类,然后在3返回到Python函数?以下是我正在尝试的:
我使用SWIG来生成包装文件。SWIG接口文件,用于创建< <代码> 2、CPP 和<代码> 2。h < /C> C++文件:/* File: 2.i */
%module t2c_main
%{
#define SWIG_FILE_WITH_INIT
#include "../include/2.h"
%}
%include ../include/2.h
在运行SWIG之后,我得到了一个Python文件和一个cxx文件。现在我在使用这些文件时遇到了问题;如上所述,我需要传递变量。传递变量的准确程度显然取决于数据的存储方式。让我们假设t2c_主模块包含一个addDataPoint方法(int,int) 然后,您将执行以下操作:
- 将生成的cpp文件与2.cpp一起编译并链接到动态库中
- 如果生成的python文件名为t2c.py,请将刚刚编译的动态库重命名为_t2c.pyd(注意下划线,这实际上很重要)
- 在python代码中导入t2c模块
t2c.addDataPoint(5,10)
在您的python代码中。感谢您的支持和帮助。