我想用c++ 调用python 做界面, 已经能用 c++调用python函数了,但是如果在 py文件里加入 import wx 就会出现错误.
调用的方法就是api 没用boost
这个是部分c++代码
#include <iostream>
#include <Python.h>
using namespace std;
void HelloWorld();
int main()
{
cout << "Starting Test..." << endl;
cout << "HelloWorld()-------------" << endl;
HelloWorld();
system("pause");
return 0;
}
//调用输出"Hello World"函数
void HelloWorld()
{
Py_Initialize(); //使用python之前,要调用Py_Initialize();这个函数进行初始化
if (!Py_IsInitialized())
{
return;
}
PyObject * pModule = NULL; //声明变量
PyObject * pFunc = NULL; //声明变量
pModule = PyImport_ImportModule("Test001"); //这里是要调用的Python文件名
pFunc = PyObject_GetAttrString(pModule, "HelloWorld"); //这里是要调用的函数名
PyEval_CallObject(pFunc, NULL); //调用函数,NULL表示参数为空
Py_Finalize(); //调用Py_Finalize,这个和Py_Initialize相对应的.
}
这个是py代码 ,去掉 import wx 就能运行起来了
import wx
def HelloWorld():
print "Hello World"
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = MyFrame()
frame.Show(True)
app.MainLoop()
def add(a, b):
return a+b
def TestDict(dict):
print dict
dict["Age"] = 17
return dict
class Person:
def greet(self, greetStr):
print greetStr
#print add(5,7)
#a = raw_input("Enter To Continue...")
没装wx库吧