我已经下载了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
这里有什么问题?
答案 0 :(得分:22)
答案 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\Levenshtein
和python-Levenshtein-master\build\temp.win-amd64-2.7\Release\Levenshtein
的路径附加到系统环境变量PATH
。