Исходя из этого SO вопроса , вы можете использовать строки:
Для статических данных это действительно просто:
#include "Python.h"
int main()
{
Py_Initialize();
PyRun_SimpleString("import pylab");
PyRun_SimpleString("pylab.plot(range(5))");
PyRun_SimpleString("pylab.show()");
Py_Exit(0);
return 0;
}
Это становится немного сложнее,но все же возможно с переменными данными, просто объедините их в строку.
#include <string>
#include "Python.h"
using namespace std;
int main()
{
Py_Initialize();
int x[5] = {0, 1, 2, 3, 4};
int y[5] = {5, 1, 7, 5, 1};
string command = "pylab.plot([";
for(int i = 0; i < 4; i++) {
command += x[i];
command += ", ";
}
command += x[4];
command += "], [";
for(int i = 0; i < 4; i++) {
command += y[i];
command += ", ";
}
command += y[4];
command += "])";
PyRun_SimpleString("import pylab");
PyRun_SimpleString(command.c_str());
PyRun_SimpleString("pylab.show()");
Py_Exit(0);
return 0;
}
(Обратите внимание, что я не проверял это на наличие ошибок, поэтому там могут быть некоторые, но вы понимаете,и да, это очень уродливое решение).