如何在OSX上导入和使用python Levenshtein扩展?

时间:2015-01-27 13:58:26

标签: python python-2.7 osx-yosemite

我已经下载了python-Levenshtein档案并提取了Levenshtein目录。所以,结果我有以下文件结构:

Levenshtein
  - __init__.py
  - _levenshtein.c
  - _levenshtein.h
  - StringMatcher.py
myscript.py

以下myscript.py内容:

from Levenshtein import *
from warnings import warn

print Levenshtein.distance(string1, string2)

但是我收到以下错误 -

Traceback (most recent call last):
  File "myscript.py", line 1, in <module>
    from Levenshtein import *
  File "/path/to/myscript/Levenshtein/__init__.py", line 1, in <module>
    from Levenshtein import _levenshtein
ImportError: cannot import name _levenshtein

这里有什么问题?

4 个答案:

答案 0 :(得分:22)

安装python-Levenshtein包:

  • pip install python-levenshtein

(这需要pip,但大多数现代Python安装都包含它。)

答案 1 :(得分:10)

在我看来,你并没有构建 Levenshtein包。转到您下载的源的未提取目录(例如,python-Levenshtein-0.12.0/)并使用以下内容构建:

python setup.py build

如果一切顺利(可能除了某些警告之外),请使用

安装到site-packages
sudo python setup.py install

然后我发现我可以使用该包。例如来自IPython:

In [1]: import Levenshtein
In [2]: string1 = 'dsfjksdjs'
In [3]: string2 = 'dsfiksjsd'
In [4]: print Levenshtein.distance(string1, string2)
3

(请注意,使用您的(可能是不明智的)通配符导入时,您应该只使用distance(string1, string2)而不使用包名称作为前缀。)

答案 2 :(得分:2)

在Windows,Mac和UNIX上安装和使用Levenshtein PIP软件包

使用 sudo安装或以管理员身份运行

pip install python-levenshtein

使用以下代码导入代码:

import Levenshtein as lev

比起您的代码,您可以像这样使用Levenstein functions

lev.distance('Levenshtein', 'Lenvinsten')

将输出

  

4

答案 3 :(得分:-2)

您可以尝试设置环境变量:

将目录python-Levenshtein-master\build\lib.win-amd64-2.7\Levenshteinpython-Levenshtein-master\build\temp.win-amd64-2.7\Release\Levenshtein的路径附加到系统环境变量PATH