swig3.0.8 linux怎么安装

swig3.0.8 linux怎么安装,第1张

你找个工具将这个接口API,自动转换成python版本的就可以了。好象是SWIG和Boost。 这两个以前看过,偶尔还试过几次。之所以建议你用自动工具,就是因为python对于C 扩展麻烦些,对于C语言接口可以使用ctypes和cython简单解决。不过C 如果用这些方法有时候被很麻烦。

boost在linux里会经常用到,在windows下也可以使用。SWIG在一般的教程里都会提及到。SIP也是最近出名的。

下面是一些参考资料,搜索来的。

=== 使用工具进行扩展 ===

虽然扩展过程并不复杂,但也可以使用许多已知的工具简化扩展过程。

(1) SWIG

由David Beazley创建,是一个自动的扩展构造工具。它读入注释的C/C 头文件,为python、tcl、perl等多种脚本语言产生wrap代码。SWIG可以包装大量C 特性到Python的扩展模块中。

评价:swig简单,可以支持多种脚本文件,但支持的c 特性不完备。

(2) SIP

由Phil Thompson创建,是一个C 模块构造器,专门为C 的类创造wrapper。它曾经被用于创建PyQt和PyKDE扩展模块,因此比较出名。

评价:支持C 特征很齐全,但比较复杂。

(3) bgen

该工具被包含在标准Python发布包中的模块构建工具集里,由Jack Jansen维护。它用于产生在Macintosh版本可用的Python扩展模块。

(4) pyfort

由Paul dubois创建,用来产生Fortran语言生成的扩展模块。

(5) cxx

也由Paul Dubois创建,甫俯颠谎郯荷奠捅订拉是一个库,为Python的C 扩展提供了友好的API。Cxx允许将许多python对象(如list和tuple)使用到STL的运算中。库也提供了C 异常处理到python异常处理的转化。

(6) WrapPy

由Greg Couch创建,通过读入C 头文件来产生扩展模块。

(7) Boost Python Library

由David Abrahams创建。该库提供了更多与众不同的C wrap到python扩展中,而只需要对要扩展的C 类写很少的附加信息。

评价:Boost为C 提供了许多实用的库,如Regex(正则表达式库)、Graph(图组件和算法)、concept check(检查泛型编程中的concept)、Thread(可移植的C 多线程库)、Python(把C 类和函数映射到Python之中)、Pool(内存池管理)等等。

Boost总体来说是实用价值很高,质量很高的库。并且强调对跨平台的支持。但是Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。

boost.python支持的c 特性较多,但是比较复杂。

1、将/usr/local/subversion这个文件夹备份一下

mv /usr/local/subversion /usr/local/subversion.bak

2、安装python

由于viewVC使用python写的,而系统自带的版本太低,因此安装该版本。

tar xvzf Python-2.7.6.tgz

cd Python-2.7.6

./configure --prefix=/usr/local/python2

make &&make install

3、安装swig

tar xzvf swig-1.3.24.tar.gz

cd SWIG-1.3.24

./configure --prefix=/usr/local/swig \

--with-python=/usr/local/python2/bin/python

make &&make install

4、安装svn

tar xzvf subversion-1.6.18.tar.gz

tar xzvf subversion-deps-1.6.18.tar.gz

tar xzvf neon-0.29.6.tar.gz

tar xzvf serf-0.3.0.tar.bz2

cd subversion-1.6.18

rm -rf apr apr-util neon serf

cp -ar ../neon-0.29.6 neon

cp -ar ../serf-0.3.0 serf

chown -R 1000:users neon serf

./configure \

--prefix=/usr/local/subversion \

--with-apxs=/usr/local/apache2/bin/apxs \

--with-ssl \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr-util \

--with-zlib=/usr/lib64 \

--with-swig=/usr/local/swig/bin/swig \

--enable-shared \

--enable-static \

PYTHON=/usr/local/python2/bin/python

make &&make install

5、配置SVN

参见我之前的博文 http://www.linuxidc.com/Linux/2014-01/95226.htm 。

6、绑定subversion

1234 cd subversion-1.6.18

make swig-py

make check-swig-py #有一个trac的报错,无须理会

make install-swig-py

7、添加svn的python binding安装路径到Python的path中

由于是源码安装,svn的python-binging 不在python默认的搜索路径中,默认是/usr/local/lib/svn-python/,需要修改如下:

cd /usr/local/python2/lib/python2.7/site-packages

echo /usr/local/subversion/lib/svn-python >subversion.pth

echo /usr/local/subversion/lib >>/etc/ld.so.conf

ldconfig

8、测试svn模块

首先要修改python的可执行文件路径,这是由于系统自带的python未删除。如果不修改,viewvc在调用python的时候默认使用系统自带的。如果你不嫌麻烦,那么请修改viewvc-1.1.21安装目录下的所有脚本文件,它们的路径都是以#!/usr/bin/python开头的。

cd /usr/bin

mv python python.bak

ln -s /usr/local/python2/bin/python python

执行如下命令测试:

# python

Python 2.7.6 (default, Nov 29 2013, 11:32:29)

[GCC 3.4.6 20060404 (Red Hat 3.4.6-9)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>import svn.core


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/6119470.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-15
下一篇2023-03-15

发表评论

登录后才能评论

评论列表(0条)

    保存