我目前正在开发一个项目,我必须用Python包装C++类才能编写程序脚本.所以我的具体经验还涉及在我们的程序中嵌入Python解释器.
我尝试的替代方案是:
Boost.Python的
我喜欢Boost.Python生成的更干净的API,但事实上它需要用户安装额外的依赖项才能让我们切换到SWIG.
痛饮
SWIG对我们的主要优势是它不需要最终用户安装它来使用最终程序.
您曾经做过什么,以及您的经历是什么?
如何使用Python将PDF文件转换为HTML?
我正在考虑谷歌做(或似乎做)索引PDF文件的线条.
我的最终目标是设置Apache以显示PDF文件的HTML,因此在这方面引领我的任何事情也将受到赞赏.
我正在尝试使用SWIG将此函数公开给Python:
std::vector<int> get_match_stats();
Run Code Online (Sandbox Code Playgroud)
我希望SWIG为Python生成包装代码,以便将其视为整数列表.
将其添加到.i文件中:
%include "typemaps.i"
%include "std_vector.i"
namespace std
{
%template(IntVector) vector<int>;
}
我正在跑步SWIG Version 1.3.36并打电话给-Wall我,我没有得到任何警告.
我能够访问列表但是在使用-Wall(g++ (GCC) 4.2.4生成)生成的C++代码进行编译时会收到一些警告:
warning: dereferencing type-punned pointer will break strict-aliasing rules
我正确地公开了这个功能吗?如果是这样,警告意味着什么?
这些是相同功能中违规行之前的行:
SWIGINTERN PyObject *_wrap_IntVector_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
std::vector *arg1 = (std::vector *) 0 ;
std::vector::iterator arg2 ;
std::vector::iterator result;
void *argp1 = 0 ;
int res1 = 0 ;
swig::PySwigIterator *iter2 = 0 ;
int res2 ; … 我看到这个有一天(滚动一路下来,看到一些巧妙的东西):
http://www.mono-project.com/docs/tools+libraries/tools/repl/
并且想知道Python是否存在类似的东西.
那么,是否有一个很好的Python GUI shell可以做像C#shell那样的东西?
编辑:以下是文章截图的链接,显示了我感兴趣的内容.
我感兴趣的事物类型的一个例子:
http://www.mono-project.com/archived/images/7/75/GSharpPlot.png
他们能够添加钩子来生成像元素一样的GUI元素,甚至可以做愚蠢的事情:
http://www.mono-project.com/archived/images/b/bf/GSharpRenderHandler.png
我不认为这是可能的任何我尝试过的控制台shell(常规python shell,ipython).
编辑:我不是在寻找IDE.如果你看一下这个链接,你就会知道我想要什么.