解壓後執行 ./configure
make && make install
1.新建cal.h
int add(int a, int b);
int sub(int a, int b);
2.新建cal.cpp
int add(int a, int b)
int sub(int a, int b)
1.新建cal.i
%module cal
%%include "cal.h"
2.在終端輸入swig -python -c++ cal.i
生成cal_wrap.cxx和cal.py
3.新建setup.py檔案
from distutils.core import setup
from distutils.core import extension
test_module = extension(name = '_cal',
sources = ['cal_wrap.cxx','cal.cpp'],
)setup(name = 'cal_package',
version = '1.0',
author = 'mightypants',
ext_modules = [test_module],
py_modules = ['cal'],
)
4.在終端輸入python setup.py build
,等待編譯完成
1.新建測試檔案test_cal.py
import cal
print(cal.sub(3,2))
2.將build/lib.linux-x86_64-2.7/
路徑下的cal.py
與_cal.so
檔案複製到test_cal.py
檔案目錄下,在終端輸入python test_cal.py
即可測試結果 python用swig調dll是個偽命題
只有自己寫的 生成的dll才可以通過swig來調,而且實際上調的也不是dll,而是.pyd檔案。也就是說用生成dll的 通過.i和 swap.cxx檔案一起生成乙個.pyd檔案,python在呼叫c 的函式的時候實際是鏈結的.pyd。沒有這個檔案是不能成功調dll的。用boost.python調dl...
python應用之 最多約數問題
問題描述 給定2個正整數a b 計算a和b之間約數個數最多的數 num int num result 2 if num 2 return 0 for temp in range 2,num if num temp 0 result 1 return result for temp in range ...
遞迴應用之求和 進製轉換Python
1.求和 給出乙個列表,用遞迴的方式求和。其實求和也是兩個數相加,然後再相加,直到求和完畢。所以可以用遞迴的方式,每次呼叫求和函式,直到列表中的數字還有乙個,返回即可。def resum lists if len lists 1 return lists 0 else return lists 0 ...