使用Windows版CRF++时import CRFPP出错解决过程

使用Windows版CRF++的python接口时,import CRFPP出错,提示没有这个模块。

       原因:模块缺失,这个模块需要我们自己编译出来。
       解决方法:

       (1)Anaconda或者是python需要是32的程序(32位的程序可以在32位/64位的机器上运行,而64的程序只能在64位的机器上运行),具体原因未知。

       (2)python编译一些模块需要VS的支持。C:\Python34\Lib\distutils 目录下有个 msvc9compiler.py,打开它,找到 “def find_vcvarsall(version):”函数,将toolskey = "VS%0.f0COMNTOOLS" % version改为与VS对应的toolskey,如VS2015的改为toolskey = "VS140COMNTOOLS"。

       (3)编译是在Linux版的CRF++中完成。虽然我们要使用的Windows版的CRF++,但此步骤中,我们需要Linux版的CRF++,两个版本的下载连接为:http://download.csdn.net/detail/jerryfy007/9870402
       (4)添加编译需要的一些文件。cd 到Linux版CRF++的 CRF++Linux\CRF++-0.58\python 目录,添加一些编译用的文件,后续的编译也在此目录进行。
       crfpp.h文件。 直接从Windows版的CRF++中复制过来使用。\CRF++Win\CRF++-0.58\sdk\crfpp.h

       crfpp.lib文件。同样可以直接从Windows版的CRF++中复制过来使用。\CRF++Win\CRF++-0.58\sdk\libcrfpp.lib,需要重命名为crfpp.lib。

      pthread.lib文件。需要从网上下载:ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip,从pthreads-w32-2-9-1-release\Pre-built.2\lib\x64\pthreadVC2.lib中复制此文件,但需要重命名为pthread.lib。
上面的3个文件也可以在此下载:http://download.csdn.net/detail/jerryfy007/9873254

          (5) 在CRF++Linux\CRF++-0.58\python路径中依次执行:
          python setup.py build
          python setup.py install
         至此,问题解决。

      

          
          

 

你可能感兴趣的:(解决问题)