LA_*_*LA_ 9 python python-2.7 osx-yosemite
我已经下载了python-Levenshtein档案并提取了Levenshtein目录.所以,结果我有以下文件结构:
Levenshtein
- __init__.py
- _levenshtein.c
- _levenshtein.h
- StringMatcher.py
myscript.py
Run Code Online (Sandbox Code Playgroud)
以下myscript.py内容:
from Levenshtein import *
from warnings import warn
print Levenshtein.distance(string1, string2)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误 -
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
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
Har*_*vey 13
Levenshtein PIP 包在 Windows、Mac 和 UNIX 上的安装和使用
使用sudo安装或以管理员身份运行
pip install python-levenshtein
Run Code Online (Sandbox Code Playgroud)
使用以下命令导入您的代码:
import Levenshtein as lev
Run Code Online (Sandbox Code Playgroud)
不是在你的代码,你可以使用莱文施泰因功能,这样
lev.distance('Levenshtein', 'Lenvinsten')
Run Code Online (Sandbox Code Playgroud)
这将输出
4
.
xnx*_*xnx 12
在我看来,你并没有建立 Levenshtein包.转到您下载的源的未提取目录(例如,python-Levenshtein-0.12.0/)并使用以下内容构建:
python setup.py build
Run Code Online (Sandbox Code Playgroud)
如果一切顺利(除了可能,从一些警告),安装到你site-packages的
sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)
然后我发现我可以使用该包.例如从IPython中:
In [1]: import Levenshtein
In [2]: string1 = 'dsfjksdjs'
In [3]: string2 = 'dsfiksjsd'
In [4]: print Levenshtein.distance(string1, string2)
3
Run Code Online (Sandbox Code Playgroud)
(请注意,使用您的(可能是不明智的)通配符导入时,您应该只使用distance(string1, string2)不带前缀的包名称).
| 归档时间: |
|
| 查看次数: |
31976 次 |
| 最近记录: |