J'ai téléchargé l'archive python-Levenshtein et extrait le répertoire Levenshtein. Donc, en conséquence, j'ai la structure de fichiers suivante:
Levenshtein
- __init__.py
- _levenshtein.c
- _levenshtein.h
- StringMatcher.py
myscript.py
Et ce qui suit myscript.py
contenu:
from Levenshtein import *
from warnings import warn
print Levenshtein.distance(string1, string2)
Mais je reçois l'erreur suivante -
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
Qu'est-ce qui ne va pas ici?
Pour installer le package python-Levenshtein :
pip install python-levenshtein
(Cela nécessite pip , mais la plupart des installations modernes Python l'incluent.)
Il me semble que vous n'avez pas build le package Levenshtein. Accédez au répertoire non extrait de la source que vous avez téléchargée (par exemple, python-Levenshtein-0.12.0/
) Et créez avec:
python setup.py build
Si tout s'est bien passé (à part, peut-être, quelques avertissements), installez sur votre site-packages
Avec
Sudo python setup.py install
Ensuite, je trouve que je peux utiliser le package. par exemple. depuis IPython:
In [1]: import Levenshtein
In [2]: string1 = 'dsfjksdjs'
In [3]: string2 = 'dsfiksjsd'
In [4]: print Levenshtein.distance(string1, string2)
3
(Notez qu'avec votre importation (peut-être imprudente) de caractères génériques, vous devez simplement utiliser distance(string1, string2)
sans préfixer le nom du package).
Installation et utilisation du package Levenshtein PIP sur Windows, Mac et UNIX
Installez avec Sudo ou exécutez en tant qu'administrateur
pip install python-levenshtein
Importez dans votre code avec:
import Levenshtein as lev
que dans votre code, vous pouvez utiliser fonctions Levenstein comme ceci
lev.distance('Levenshtein', 'Lenvinsten')
qui sortira
4
.