You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过pip3安装chs包:editdistance依赖构建失败

安装chs包时遭遇editdistance构建失败问题

执行pip3 install chs命令时安装失败,因系统默认使用用户安装模式(普通site-packages目录无写入权限),在安装依赖editdistance包构建wheel环节出错,提示找不到editdistance/bycython.pyx文件。作为Python新手,尝试通过约束文件更换editdistance版本仍无法完成安装。

完整报错信息

pip3 install chs
默认使用用户安装模式,因为普通site-packages目录不可写
正在收集chs
  使用缓存的chs-3.0.0.tar.gz (13.0 MB)
  准备metadata (setup.py) ... 完成
满足依赖:python-chess 已存在于./.local/lib/python3.12/site-packages (来自chs) (1.999)
正在收集editdistance (来自chs)
  使用缓存的editdistance-0.6.2.tar.gz (31 kB)
  安装构建依赖 ... 完成
获取构建wheel的依赖项 ... 错误
error: subprocess-exited-with-error

× 获取构建wheel的依赖项执行失败。
│ 退出码:1
╰─> [25行输出]
    回溯(最近的调用最后):
      文件 "/home/fedora/.local/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", 第353行, 在 <module>
        main()
      文件 "/home/fedora/.local/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", 第335行, 在 main
        json_out['return_val'] = hook(**hook_input['kwargs'])
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      文件 "/home/fedora/.local/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", 第118行, 在 get_requires_for_build_wheel
        return hook(config_settings)
               ^^^^^^^^^^^^^^^^^^^^^
      文件 "/tmp/pip-build-env-xq8q7ikf/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", 第325行, 在 get_requires_for_build_wheel
        return self._get_build_requires(config_settings, requirements=['wheel'])
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      文件 "/tmp/pip-build-env-xq8q7ikf/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", 第295行, 在 _get_build_requires
        self.run_setup()
      文件 "/tmp/pip-build-env-xq8q7ikf/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", 第311行, 在 run_setup
        exec(code, locals())
      文件 "<string>", 第25行, 在 <module>
      文件 "/tmp/pip-build-env-xq8q7ikf/overlay/lib64/python3.12/site-packages/Cython/Build/Dependencies.py", 第1010行, 在 cythonize
        module_list, module_metadata = create_extension_list(
                                       ^^^^^^^^^^^^^^^^^^^^^^
      文件 "/tmp/pip-build-env-xq8q7ikf/overlay/lib64/python3.12/site-packages/Cython/Build/Dependencies.py", 第845行, 在 create_extension_list
        for file in nonempty(sorted(extended_iglob(filepattern)), "'%s' doesn't match any files" % filepattern):
      文件 "/tmp/pip-build-env-xq8q7ikf/overlay/lib64/python3.12/site-packages/Cython/Build/Dependencies.py", 第117行, 在 nonempty
        raise ValueError(error_msg)
    ValueError: 'editdistance/bycython.pyx' 未匹配到任何文件
    [输出结束]

note: 此错误来自子进程,大概率不是pip的问题。
error: subprocess-exited-with-error

× 获取构建wheel的依赖项执行失败。
│ 退出码:1
╰─> 查看上方输出详情。

note: 此错误来自子进程,大概率不是pip的问题。

解决方案

方法1:安装带预编译wheel的editdistance版本

editdistance 0.6.2版本可能没有针对Python3.12的预编译wheel,导致本地编译时缺失源码文件。尝试安装更高版本的editdistance(0.7.0及以上),这些版本通常提供适配Python3.12的预编译包:

pip3 install editdistance>=0.7.0 --user

安装完成后再执行:

pip3 install chs --user

方法2:通过约束文件指定editdistance版本

创建constraints.txt文件,内容如下:

editdistance>=0.7.0

然后执行安装命令:

pip3 install chs --user -c constraints.txt

方法3:安装编译依赖(需用旧版本时)

如果必须使用editdistance 0.6.2,需先安装Cython和系统级编译工具:

pip3 install cython --user

Fedora系统下补充安装系统依赖:

sudo dnf install gcc python3-devel

之后再尝试安装chs。


内容的提问来源于stack exchange,提问作者vdegenne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:10:01