我尝试通过 python setup.py install 为FANN编译python绑定(pyfann)。安装了Visual Studio 2010和SWIGWIN后,我遇到了几个错误。
在Windows 7和/或8下有没有人为Python 2.7编译python绑定的预编译版本?我也尝试了一个pyfann under windows,但是_libfann.pyd的构建中止了。
答案 0 :(得分:2)
我为python 2.7编译了fann 您可以从此处下载:https://github.com/jacekm-git/pyfann_python2.7_windows
cd c:\fann\python\pyfann\
swig -c++ -python pyfann.i
SWIGINTERN PyObject *_wrap_training_data_parent_create_train_from_callback(PyObject*SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
FANN::training_data *arg1 = (FANN::training_data *) 0 ;
unsigned int arg2 ;
unsigned int arg3 ;
unsigned int arg4 ;
void (*arg5)(unsigned int,unsigned int,unsigned int,fann_type *,fann_type *) = (void (*)(unsigned int,unsigned int,unsigned int,fann_type *,fann_type *)) 0 ;
// .... rest of file ...
更改为:
typedef void (__stdcall *arg5_fn)(unsigned int, unsigned int, unsigned int, fann_type*, fann_type*); // added line
SWIGINTERN PyObject *_wrap_training_data_parent_create_train_from_callback(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
FANN::training_data *arg1 = (FANN::training_data *) 0 ;
unsigned int arg2 ;
unsigned int arg3 ;
unsigned int arg4 ;
/* void (*arg5)(unsigned int,unsigned int,unsigned int,fann_type *,fann_type *) = (void (*)(unsigned int,unsigned int,unsigned int,fann_type *,fann_type *)) 0 ;*/
arg5_fn arg5= (arg5_fn)NULL; // added line
// ....
# swig_cmd = 'swig -c++ -python pyfann/pyfann.i'
# print 'Running SWIG before:', swig_cmd
# os.system(swig_cmd)
ext_modules=[Extension('pyfann._libfann',['pyfann/pyfann_wrap.cxx'],
include_dirs=['../src/include'],
# extra_objects=['../src/doublefann.o'],
libraries = ['pyfann/fanndoubled'],
define_macros=[("SWIG_COMPILE",None)]
),
cd C:\fann\python\
python setup.py install
copy C:\fann\python\pyfann\fanndoubled.dll C:\Python27\Lib\site-packages\pyfann\