Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
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.
–
–
–
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
–
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
–
–
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
–
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