我从 conda-forge 安装了levenshtein模块。我不记得使用了确切的命令,但它可能类似于conda install -c conda-forge PackageName
。我查询了软件包版本。我看到两个软件包的版本号完全相同:
(py39) C:\>conda list levenshtein$
# packages in environment at C:\Users\User.Name\AppData\Local\anaconda3\envs\py39:
#
# Name Version Build Channel
levenshtein 0.25.1 py39h99910a6_0 conda-forge
python-levenshtein 0.25.1 pyhd8ed1ab_0 conda-forge
该版本与我在这里和这里在线找到的版本相匹配。我还可以在 GitHube 上找到这两个版本,这里、这里和这里。
为了尝试了解它们是否不同,我使用 Cygwin 的 Bash 导航到 Conda 环境文件夹/c/Users/User.Name/AppData/Local/anaconda3/envs/py39
并搜索与包相关的文件:
$ find * -name '*levenshtein*' -print | xargs ls -l
7270 Jun 7 17:13 conda-meta/levenshtein-0.25.1-py39h99910a6_0.json
4564 Jun 7 17:13 conda-meta/python-levenshtein-0.25.1-pyhd8ed1ab_0.json
3951 Jan 27 2023 Lib/site-packages/gensim/similarities/__pycache__/levenshtein.cpython-39.pyc
4505 Jan 27 2023 Lib/site-packages/gensim/similarities/levenshtein.py
219136 Apr 7 12:12 Lib/site-packages/Levenshtein/levenshtein_cpp.cp39-win_amd64.pyd
我不确定如何解释这些发现。查看前 2 个 JSON 文件,我看到可能相关的选定行
levenshtein-0.25.1-py39h99910a6_0.json
--------------------------------------
"extracted_package_dir": "C:\\Users\\User.Name\\AppData\\Local\\anaconda3\\pkgs\\levenshtein-0.25.1-py39h99910a6_0",
"fn": "levenshtein-0.25.1-py39h99910a6_0.conda",
"source": "C:\\Users\\User.Name\\AppData\\Local\\anaconda3\\pkgs\\levenshtein-0.25.1-py39h99910a6_0",
"package_tarball_full_path": "C:\\Users\\User.Name\\AppData\\Local\\anaconda3\\pkgs\\levenshtein-0.25.1-py39h99910a6_0.conda",
python-levenshtein-0.25.1-pyhd8ed1ab_0.json
-------------------------------------------
"extracted_package_dir": "C:\\Users\\User.Name\\AppData\\Local\\anaconda3\\pkgs\\python-levenshtein-0.25.1-pyhd8ed1ab_0",
"fn": "python-levenshtein-0.25.1-pyhd8ed1ab_0.conda",
"source": "C:\\Users\\User.Name\\AppData\\Local\\anaconda3\\pkgs\\python-levenshtein-0.25.1-pyhd8ed1ab_0",
"package_tarball_full_path": "C:\\Users\\User.Name\\AppData\\Local\\anaconda3\\pkgs\\python-levenshtein-0.25.1-pyhd8ed1ab_0.conda",
这两个软件包实际上是相同的吗?如果是,为什么它们会以不同名称的软件包形式出现?如何检查一个通用软件包是否通过两个不同的名称提供?
查看软件包索引可以
python-levenshtein
让我们找到https://github.com/rapidfuzz/python-Levenshtein,其 README 中写道:因此从外观上看,它们是相同的包,是
python-levenshtein
为了兼容性而进行维护。