Reputation: 59388
After searching for days I'm about ready to give up finding precompiled binaries for Python 2.7 (Windows 64-bit) of the Python Levenshtein library, so not I'm attempting to compile it myself. I've installed the most recent version of MinGW32 (version 0.5-beta-20120426-1) and set it as the default compiler in distutils.
Here we go:
C:\Users\tomas>pip install python-levenshtein Downloading/unpacking python-levenshtein Running setup.py egg_info for package python-levenshtein warning: no files found matching '*' under directory 'docs' warning: no previously-included files matching '*pyc' found anywhere in distribution warning: no previously-included files matching '.project' found anywhere in distribution warning: no previously-included files matching '.pydevproject' found anywhere in distribution Requirement already satisfied (use --upgrade to upgrade): setuptools in c:\python27\lib\site-packages\setuptools-0.6c11-py2.7.egg (from python-levenshtein) Installing collected packages: python-levenshtein Running setup.py install for python-levenshtein building 'Levenshtein' extension C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c Levenshtein.c -o build\temp.win-amd64-2.7\Release\levenshtein.o cc1.exe: error: unrecognized command line option '-mno-cygwin' error: command 'gcc' failed with exit status 1 Complete output from command C:\Python27\python.exe -c "import setuptools;__file__='c:\\users\\tomas\\appdata\\local\\temp\\pip-build\\python-levenshtein\\setup.py';exec(compile(open(__file__).rea d().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\tomas\appdata\local\temp\pip-7txyhp-record\install-record.txt --single-version-externally-managed: running install running build running build_ext building 'Levenshtein' extension C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c Levenshtein.c -o build\temp.win-amd64-2.7\Release\levenshtein.o cc1.exe: error: unrecognized command line option '-mno-cygwin' error: command 'gcc' failed with exit status 1
And now I'm stuck. I'm assuming that the -mno-cygwin
option is outdated and no longer valid for the version of gcc
that I have. If that is the case, I still have no clue how to fix that.
Thanks for any help anybody can offer on this issue.
EDIT:
I ran the compile line manually after removing the bad option:
C:\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c Levenshtein.c -o build\temp.win-amd64-2.7\Release\levenshtein.o
Which successfully provided levenshtein.o in the build folder, but when I try to run python setup.py install
then it just tries to build again and fails. Where can I remove -mno-cygwin
? I assume it's somewhere in the source of distutils but I can't find it.
Upvotes: 20
Views: 57791
Reputation: 394
I tried all the methods here and nothing worked for my Windows 10. In the end, I found this library python-Levenshtein-wheels which is "pip-able" on Windows.
pip install python-Levenshtein-wheels
After this just use Levenshtein as usual
import Levenshtein
Levenshtein.distance('It works at last', 'Well it works at last')
UPDATE:
The library rapidfuzz provides even some more ratios built upon Levenshtein metric. Just pip install rapidfuzz
. You can use them depending on your use cases. This an example
from rapidfuzz import fuzz
fuzz.ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
# 90.90908813476562
fuzz.token_sort_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear")
# 83.8709716796875
hth
Upvotes: 15
Reputation: 4603
If you having Conda Virtual Environment
conda install -n virtualEnvironmentName python-levenshtein
Upvotes: 0
Reputation: 371
For the answer by @Laurenz Albe this helped me as you must delete the "--use-wheel" Docker: no such option: --use-wheel
output - Successfully installed python-Levenshtein-0.12.0
Upvotes: 2
Reputation: 71
How to install python-Levenshtein/fuzzywuzzy on Windows 10 64 bit:
Open a DOS window.
C:\Users\username> pip install fuzzywuzzy
C:\Users\username> pip install python-levenshtein
If you encountered the following error:
ERROR: Setup script exited with error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/down
the solution is:
From python Levenshtein wheels: https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-levenshtein, download the relevant .whl: python_Levenshtein-0.12.0-cp37-cp37m-win_amd64.whl
Create a wheels directory (or whatever name you like) under the Python37 directory: C:\Users\username\AppData\Local\Programs\Python\Python37\wheels
Copy or move the python_Levenshtein-0.12.0-cp37-cp37m-win_amd64.whl
file from the download folder to the wheels folder.
Use NotePad to create a .bat file in Python37 directory, C:\Users\username\AppData\Local\Programs\Python\Python37\pip_install_python-levenshtein.bat
with the following lines (assuming C:\Users\username\AppData\Local\Programs\Python\Python37\python.exe
is the root directory for Python.exe
):
cd C:\Users\sean3\AppData\Local\Programs\Python\Python37
pip install --use-wheel --no-index --find-links=wheels wheels/python_Levenshtein-0.12.0-cp37-cp37m-win_amd64.whl
Run pip_install_python-levenshtein.bat
:
C:\Users\firstname.lastname\AppData\Local\Programs\Python\Python37> pip_install_python-levenshtein.bat >> output1.txt
C:\Users\firstname.lastname> pip install fuzzywuzzy
OUTPUT: Successfully installed python-Levenshtein-0.12.0
Upvotes: 7
Reputation: 959
if you use Anaconda, try:
conda install -c conda-forge python-levenshtein
Upvotes: 35
Reputation: 114088
download vcsetup.exe from http://www.microsoft.com/en-us/download/details.aspx?id=6506 (sorry this link is now broken it was for VC++ 2008 ... )
run it
after it finishes open your command.exe
type :easy_install python-Levenshtein
(this assumes you have setuptools already)
sit back and let it install
done
Upvotes: 12
Reputation: 1376
For a 64-bit install that's as easy as pip, try: http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-levenshtein
Upvotes: 19