我想从Python的大型C项目中访问一些函数。在我看来,SWIG是可行的方式。我不习惯编程i C,而我对“make”的体验主要来自下载源代码。我想访问的函数驻留在一个大的C项目(Gnuplot)中,我不知道在这么多的源文件上使用SWIG的人。我想要访问的函数都在一个单独的c文件中,但有许多递归包含。我想就如何入门提出一些建议。
我想要访问的内容:term / emf.trm
原因:缺少对EMF-backend到matplotlib的LaTex符号的支持(这个后端甚至已从matplotlib中删除)。我在工作中坚持使用旧版本的Word,并且无法在没有EMF的情况下获得适合我的目的的程序图。我可以使用Gnuplot而不是matplotlib,但许多图是专门用于某种目的,matplotlib比Gnuplot更容易使用。
我们非常感谢任何建议。
答案 0 :(得分:4)
您可以尝试使用Gnuplot.py
此外:
前段时间我使用SWIG将Wild Magic C ++库(100K +代码行)包装到Python模块中(请查看Python Wild Magic。)
由于代码库包含超过1000个C ++类,我使用GCC-XML来帮助我生成99%的SWIG接口文件。基本上这样下去了:
make -n
并捕获输出。.c
或.cpp
或您拥有的内容)的列表。顺序很重要,因为SWIG需要依赖顺序的接口声明。#include
语句。除非重复,否则可以将这些有序的#includes添加到SWIG界面文件中。听起来你只对几个功能感兴趣而不是包装整个库,所以这可能是一种矫枉过正。你正在使用C和Fortran,所以它有点不同。但也许你觉得这种方法很有用。
这对于Wild Magic来说很容易,因为目录结构非常扁平。 Gnuplot看起来更加模块化。
答案 1 :(得分:0)
你应该首先阅读swig手册的前几章,并为python制作一些示例项目,distrib有许多说明swig的许多不同功能,make文件已经构建,所以要少学一点