2005年08月13日 星期六 16:29
我用SWIG做过此种调用。 1)用SWIG作一个扩展模块,包含你要在C++中调用的类 2)在你想要使用这个类的python模块中,import上一步中的扩展模块 3)在C++中嵌入的python脚本,就可以使用这个类了 在05-8-10,jeekchen <jeekchen at 163.com> 写道: > > 您好! > > 将python嵌入到C++程序后,python怎么调用c++中一个自定义类的方法? > 整个流程不明白,请各位提供一些例子,资源,或者是解决思路,谢谢! > > 致 > 礼! > > > jeekchen > jeekchen at 163.com > 2005-08-10 > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050813/9096528a/attachment.html
2005年08月15日 星期一 22:50
看到一个已有的cpp程序的源代码, 用swig包装成可以用python调用的源代码, 是 不是比较容易的一种方式, 而且这种方式也比较简单? On Sat, 13 Aug 2005 16:29:25 +0800 Hou Ming Yuan <houmingyuan at gmail.com> 撰写于: houmingyuan> 我用SWIG做过此种调用。 houmingyuan> 1)用SWIG作一个扩展模块,包含你要在C++中调用的类 houmingyuan> 2)在你想要使用这个类的python模块中,import上一步中的扩展模块 houmingyuan> 3)在C++中嵌入的python脚本,就可以使用这个类了 houmingyuan> 在05-8-10,jeekchen <jeekchen at 163.com> 写道: houmingyuan> > houmingyuan> > 您好! houmingyuan> > houmingyuan> > 将python嵌入到C++程序后,python怎么调用c++中一个自定义类的方法? houmingyuan> > 整个流程不明白,请各位提供一些例子,资源,或者是解决思路,谢谢! houmingyuan> > houmingyuan> > 致 houmingyuan> > 礼! houmingyuan> > houmingyuan> > houmingyuan> > jeekchen houmingyuan> > jeekchen at 163.com houmingyuan> > 2005-08-10 houmingyuan> > houmingyuan> > houmingyuan> > _______________________________________________ houmingyuan> > python-chinese list houmingyuan> > python-chinese at lists.python.cn houmingyuan> > http://python.cn/mailman/listinfo/python-chinese houmingyuan> > houmingyuan> > houmingyuan> >
2005年08月16日 星期二 08:56
其实swig项目的就是把现有的c/c++库转换为python扩展,因为它生成的source可读性是极差的 如果你需要重新编写扩展,使用boost::python或者pycxx之类的比较好 在05-8-15,saddle <saddle at gmail.com> 写道: > > 看到一个已有的cpp程序的源代码, 用swig包装成可以用python调用的源代码, 是 > 不是比较容易的一种方式, 而且这种方式也比较简单? > On Sat, 13 Aug 2005 16:29:25 +0800 > Hou Ming Yuan <houmingyuan at gmail.com> 撰写于: > > houmingyuan> 我用SWIG做过此种调用。 > houmingyuan> 1)用SWIG作一个扩展模块,包含你要在C++中调用的类 > houmingyuan> 2)在你想要使用这个类的python模块中,import上一步中的扩展模块 > houmingyuan> 3)在C++中嵌入的python脚本,就可以使用这个类了 > houmingyuan> 在05-8-10,jeekchen <jeekchen at 163.com> 写道: > houmingyuan> > > houmingyuan> > 您好! > houmingyuan> > > houmingyuan> > 将python嵌入到C++程序后,python怎么调用c++中一个自定义类的方法? > houmingyuan> > 整个流程不明白,请各位提供一些例子,资源,或者是解决思路,谢谢! > houmingyuan> > > houmingyuan> > 致 > houmingyuan> > 礼! > houmingyuan> > > houmingyuan> > > houmingyuan> > jeekchen > houmingyuan> > jeekchen at 163.com > houmingyuan> > 2005-08-10 > houmingyuan> > > houmingyuan> > > houmingyuan> > _______________________________________________ > houmingyuan> > python-chinese list > houmingyuan> > python-chinese at lists.python.cn > houmingyuan> > http://python.cn/mailman/listinfo/python-chinese > houmingyuan> > > houmingyuan> > > houmingyuan> > > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- 茫茫人海,你是我的最爱 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050816/9796bb5e/attachment.html
2005年08月16日 星期二 20:42
to saddle: 你说的很对,跟我的想法差不多了。 C++代码分成两部分,一部分时需要导出到脚本使用的C1,一部分是不需要的C2 用SWIG可以把C1作为输入,生成一个module1,产生两个文件C++代码MC, python代码MP 嵌入脚本为S1,S1可以import module1 现在嵌入过程就是 Py_Initialzie() module1_init 调用Py_ImportModule(S1) 用PyObject_CallObject()调用S1中的函数 to 大熊: 这位老兄的理由很奇怪,swig生成的代码设计初衷就不是用来读的,只不过是做了些包装,隐藏一些低层的细节,没有逻辑性的东西。 我认为现在为止,swig还是最好的用的把C++封装成python模块的工具。可以试试这个例子: class A { public: virtual ~A() = 0; int GetX() = 0; } A* CreateA(); 试试用SWIG和boost::python看看那个更好用。 在05-8-16,大熊 <bearsprite at gmail.com> 写道: > > 其实swig项目的就是把现有的c/c++库转换为python扩展,因为它生成的source可读性是极差的 > > 如果你需要重新编写扩展,使用boost::python或者pycxx之类的比较好 > > 在05-8-15,saddle <saddle at gmail.com> 写道: > > > > 看到一个已有的cpp程序的源代码, 用swig包装成可以用python调用的源代码, 是 > > 不是比较容易的一种方式, 而且这种方式也比较简单? > > On Sat, 13 Aug 2005 16:29:25 +0800 > > Hou Ming Yuan <houmingyuan at gmail.com> 撰写于: > > > > houmingyuan> 我用SWIG做过此种调用。 > > houmingyuan> 1)用SWIG作一个扩展模块,包含你要在C++中调用的类 > > houmingyuan> 2)在你想要使用这个类的python模块中,import上一步中的扩展模块 > > houmingyuan> 3)在C++中嵌入的python脚本,就可以使用这个类了 > > houmingyuan> 在05-8-10,jeekchen < jeekchen at 163.com> 写道: > > houmingyuan> > > > houmingyuan> > 您好! > > houmingyuan> > > > houmingyuan> > 将python嵌入到C++程序后,python怎么调用c++中一个自定义类的方法? > > houmingyuan> > 整个流程不明白,请各位提供一些例子,资源,或者是解决思路,谢谢! > > houmingyuan> > > > houmingyuan> > 致 > > houmingyuan> > 礼! > > houmingyuan> > > > houmingyuan> > > > houmingyuan> > jeekchen > > houmingyuan> > jeekchen at 163.com > > houmingyuan> > 2005-08-10 > > houmingyuan> > > > houmingyuan> > > > houmingyuan> > _______________________________________________ > > houmingyuan> > python-chinese list > > houmingyuan> > python-chinese at lists.python.cn > > houmingyuan> > http://python.cn/mailman/listinfo/python-chinese > > houmingyuan> > > > houmingyuan> > > > houmingyuan> > > > > > > > _______________________________________________ > > python-chinese list > > python-chinese at lists.python.cn > > http://python.cn/mailman/listinfo/python-chinese > > > > > > -- > 茫茫人海,你是我的最爱 > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050816/08fed7cd/attachment-0001.html
Zeuux © 2025
京ICP备05028076号