【问题标题】:How to install python-levenshtein on Windows?如何在 Windows 上安装 python-levenshtein?
【发布时间】:2012-10-23 09:54:51
【问题描述】:

在搜索了几天之后,我准备放弃为Python Levenshtein library 的 Python 2.7(Windows 64 位)寻找预编译的二进制文件,所以我不是在尝试自己编译它。我已经安装了最新版本的 MinGW32(版本 0.5-beta-20120426-1)并将其设置为 distutils 中的默认编译器。

我们开始吧:

C:\Users\tomas>pip install python-levenshtein 下载/解压 python-levenshtein 为包 python-levenshtein 运行 setup.py egg_info 警告:在目录“docs”下找不到匹配“*”的文件 警告:在分发的任何地方都找不到与“*pyc”匹配的先前包含的文件 警告:在分发的任何地方都找不到与“.project”匹配的先前包含的文件 警告:在分发的任何地方都找不到与“.pydevproject”匹配的先前包含的文件 已满足要求(使用 --upgrade 升级):c:\python27\lib\site-packages\setuptools-0.6c11-py2.7.egg 中的 setuptools(来自 python-levenshtein) 安装收集的包:python-levenshtein 为 python-levenshtein 运行 setup.py install 构建“Levenshtein”扩展 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 \发布\levenshtein.o cc1.exe:错误:无法识别的命令行选项“-mno-cygwin” 错误:命令“gcc”失败,退出状态为 1 命令 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: 运行安装 运行构建 运行 build_ext 构建“Levenshtein”扩展 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 \发布\levenshtein.o cc1.exe:错误:无法识别的命令行选项“-mno-cygwin” 错误:命令“gcc”失败,退出状态为 1

现在我被困住了。我假设 -mno-cygwin 选项已过时,并且对于我拥有的 gcc 版本不再有效。如果是这样的话,我仍然不知道如何解决这个问题。

感谢任何人在此问题上提供的任何帮助。


编辑:

删除错误选项后,我手动运行了编译行:

C:\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c Levenshtein.c -o build\temp.win-amd64-2.7\发布\levenshtein.o

在构建文件夹中成功提供了 levenshtein.o,但是当我尝试运行 python setup.py install 时,它只是尝试再次构建并失败。我在哪里可以删除-mno-cygwin?我假设它在 distutils 的源中的某个地方,但我找不到它。

【问题讨论】:

  • 是的,我花了好几个小时试图编译缺少“varsal.bat”或其他任何东西的python包,但都没有成功,...试图针对不同的编译器(mingw/cygwin)......真的应该是在 Windows 上编译这些的更好方法:/
  • 你确定difflib不够吗?
  • @BlaXpirit:可能会这样,但现在我宁愿避免重写代码和单元测试。
  • @cgohlke:那个页面是个金矿。
  • 大声笑我发誓即使在安装 mvs2008 之后我也遇到了问题......但我只是重试了它,并且在我安装 Visual C++ 2008 后,python-Levenshtein 的简单安装工作正常......

标签: python windows levenshtein-distance


【解决方案1】:

如果您使用 Anaconda,请尝试:

conda install -c conda-forge python-levenshtein

【讨论】:

  • 这是最简单的方法。
  • 这对我来说是最好的。
  • 就是这样
【解决方案2】:

对于像 pip 一样简单的 64 位安装,请尝试:http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-levenshtein

【讨论】:

  • 是的 gohlke 的二进制文件很棒 :)
【解决方案3】:

http://www.microsoft.com/en-us/download/details.aspx?id=6506 下载 vcsetup.exe(抱歉,此链接现在已损坏,它适用于 VC++ 2008 ...)

运行它

完成后打开你的command.exe

type :easy_install python-Levenshtein(假设您已经拥有 setuptools)

坐下来让它安装

完成

【讨论】:

  • "URL 可能拼写错误或您要查找的页面不再可用。"
  • bleh 这就是为什么我认为链接是坏主意......基本上你需要 VC++2008 用于 python2.7 和 VC++2010 用于 python3.x (我认为这些是正确的版本)什么你安装的python版本是什么?我可能还有我的预编译的,我写了这个答案......我可以看看)
  • 我发现很难找到并安装适用于 Windows 8.1 x64 的工作 VC++ 2008,以至于我实际上已经放弃了。即使我找到要安装的旧工作版本(MS 不会再链接到它),我最终也会遇到依赖于它的库的不同安装错误。 Gohlke 的图书馆救了我几次。
【解决方案4】:

我在这里尝试了所有方法,但在我的 Windows 10 上没有任何效果。最后,我找到了这个库 python-Levenshtein-wheels,它在 Windows 上是“pip-able”的。

pip install python-Levenshtein-wheels

之后,照常使用 Levenshtein

import Levenshtein
Levenshtein.distance('It works at last', 'Well it works at last')

更新:

rapidfuzz 库提供了更多基于 Levenshtein 指标的比率。只需pip install rapidfuzz。您可以根据您的用例使用它们。这是一个例子

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

【讨论】:

  • 使用python-Levenshtein-wheels 比任何其他答案都容易得多,并且通常应该被接受,因为它是唯一不需要pip 之外的工具的解决方案。
【解决方案5】:

如何在 Windows 10 64 位上安装 python-Levenshtein/fuzzywuzzy:

  1. 打开一个 DOS 窗口。

  2. C:\Users\username> pip install fuzzywuzzy

  3. C:\Users\username> pip install python-levenshtein

    如果遇到以下错误:

    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
    

    解决办法是:

    1. 从 python Levenshtein Wheels:https://www.lfd.uci.edu/~gohlke/pythonlibs/#python-levenshtein,下载相关的 .whl:python_Levenshtein-0.12.0-cp37-cp37m-win_amd64.whl

    2. 在 Python37 目录下创建一个 wheel 目录(或任何你喜欢的名称):C:\Users\username\AppData\Local\Programs\Python\Python37\wheels

    3. python_Levenshtein-0.12.0-cp37-cp37m-win_amd64.whl文件从下载文件夹复制或移动到wheels文件夹。

    4. 使用记事本在 Python37 目录 C:\Users\username\AppData\Local\Programs\Python\Python37\pip_install_python-levenshtein.bat 中创建一个 .bat 文件,其中包含以下几行(假设 C:\Users\username\AppData\Local\Programs\Python\Python37\python.exePython.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
      
    5. 运行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
      

      输出:成功安装 python-Levenshtein-0.12.0

【讨论】:

    【解决方案6】:

    对于@Laurenz Albe 的回答,这对我有帮助,因为您必须删除“--use-wheel” Docker: no such option: --use-wheel

    output - Successfully installed python-Levenshtein-0.12.0
    

    【讨论】:

      【解决方案7】:

      如果你有 Conda 虚拟环境

      conda install -n virtualEnvironmentName python-levenshtein
      

      【讨论】:

        猜你喜欢
        • 2013-01-16
        • 2023-03-18
        • 1970-01-01
        • 2021-04-10
        • 1970-01-01
        • 2010-10-27
        • 2021-05-28
        • 2017-12-14
        • 2010-11-29
        相关资源
        最近更新 更多