0

我在 Python 2.7.6 中安装了 CRF++0.58

当我尝试导入时,我收到以下消息:

    >>> import CRFPP
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "CRFPP.py", line 42, in <module>
        _CRFPP = swig_import_helper()
      File "CRFPP.py", line 34, in swig_import_helper
        import _CRFPP
    ImportError: No module named _CRFPP
    >>> 

安装过程在 CRF++0.58 的 python 目录下的 README 文件中有描述,具体如下:

  $ python setup.py build
  $ sudo python setup.py install

这放置在目录 /usr/local/lib/python2.7/dist-packages/ 中:

  1. CRFPP.py
  2. CRFPP.pyc
  3. _CRFPP.so

    目录 /usr/local/lib/python2.7/dist-packages/ 在 sys.path

    在 setup 目录的 CRFPP.py 中,在其开头包含以下过程:

    #This file was automatically generated by SWIG (http://www.swig.org).
    # Version 2.0.4
    #
    # Do not make changes to this file unless you know what you are doing--modify
    # the SWIG interface file instead.
    
    from sys import version_info
    if version_info >= (2,6,0):
        def swig_import_helper():
            from os.path import dirname
            import imp
            fp = None
            try:
                fp, pathname, description = imp.find_module('_CRFPP',[dirname(__file__)])
            except ImportError:
                import _CRFPP
                return _CRFPP
            if fp is not None:
                try:
                    _mod = imp.load_module('_CRFPP', fp, pathname, description)
                finally:
                    fp.close()
                return _mod
        _CRFPP = swig_import_helper()
        del swig_import_helper
    else:
        import _CRFPP
    del version_info
    

imp 没有找到 _CRFPP.so,但是找到了 CRFPP.py:

    >>> import imp
    >>> imp.find_module("_CRFPP")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named _CRFPP

    >>> imp.find_module("CRFPP")
    (<open file '/usr/local/lib/python2.7/dist-packages/CRFPP.py', mode 'U' at 0x7f7748e4a540>, '/usr/local/lib/python2.7/dist-packages/CRFPP.py', ('.py', 'U', 1))
4

1 回答 1

0

解决方案在:

Python 错误“ImportError:未命名模块”

答案:https ://stackoverflow.com/a/23964457/5283795

KrisWebDev 于 2014 年 5 月 30 日 22:50 发表:

sudo chmod 755 /usr/local/lib/python2.7/dist-packages/*.so

在此之后,我导入了模块。

最初,该模块具有以下属性:

-rwxrwx--- 1 名根员工 255671 2014 年 7 月 22 日 _CRFPP.so

命令后:

-rwxr-xr-x 1 根员工 255671 2014 年 7 月 22 日 _CRFPP.so

于 2015-09-01T04:25:55.027 回答