2016年6月16日 星期四

茶包專欄 pip 安裝 M2Crypto 失敗:swig error : Unrecognized option -builtin

今天在用 pip 安裝 M2Crypto 的時候遇到安裝失敗,錯誤訊息提示:
building 'M2Crypto.__m2crypto' extension 
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
swig -python -D__x86_64__ -I/usr/local/python3.5/include/python3.5m -I/usr/include -I/usr/include/openssl -includeall -modern -builtin -outdir build/lib.linux-x86_64-3.5/M2Crypto -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
swig error : Unrecognized option -builtin
Use 'swig -help' for available options.
error: command 'swig' failed with exit status 1

 

swig 找不到 -builtin 參數,grep 了一下 help 確實沒有,發現 CentOS 6 中內建的 swig 版本是 1.3.40-6,但目前的 swig 版本已經升到 3.0.10,也太舊了!!
$ rpm -qa | grep swig 

swig-1.3.40-6.el6.x86_64



 

從 repo 套件上是找不到升級版本的,索性直接 compiler 使用

 

安裝 swig,官方最新版本下載
$ wget http://prdownloads.sourceforge.net/swig/swig-3.0.10.tar.gz 
$ tar zxvf swig-3.0.10.tar.gz
$ cd swig-3.0.10
$ ./configure --prefix=/usr
$ make && make install

 

驗證 swig 版本
$ swig -version | grep Version 
SWIG Version 3.0.10

 

pip 安裝 M2Crypto
$ pip install m2crypto 
Collecting m2crypto
Using cached M2Crypto-0.24.0.tar.gz
Installing collected packages: m2crypto
Running setup.py install for m2crypto ... done
Successfully installed m2crypto-0.24.0

搞定!

 

 

如果你在編譯 swig 的時候出現錯誤
checking for pcre-config... no 
configure: error: in `/root/swig-3.0.10':
configure: error:
Cannot find pcre-config script from PCRE (Perl Compatible Regular Expressions)

 

代表你少了 pcre Library
$ yum install pcre-devel

 

 

 

 

Orignal From: 茶包專欄 pip 安裝 M2Crypto 失敗:swig error : Unrecognized option -builtin

沒有留言:

張貼留言