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

Linux下Python 3.10调用Stockfish库遇ValueError问题求助

解决Python stockfish库初始化时版本解析错误的问题

问题原因

Python stockfish库(3.28.0版本)在解析Stockfish引擎版本时,默认假设版本字符串以纯数字开头(如16、17),但你使用的开发版/无Git信息的Stockfish返回的版本字符串是dev202211114nogit这类带前缀的格式,导致库尝试将其转换为整数时抛出ValueError。

解决方法

1. 使用官方稳定版Stockfish引擎

下载官方发布的稳定版Stockfish(而非开发分支或无版本信息的二进制包),这类版本的版本字符串为标准数字格式,能被Python stockfish库正常解析。编译时切换到仓库的稳定版tag再执行make即可。

2. 修改Python stockfish库的版本解析逻辑

如果必须使用开发版引擎,可修改库的版本解析代码:

  • 打开报错文件:/username/.conda/envs/alpha/lib/python3.10/site-packages/stockfish/models.py
  • 定位到版本解析的代码段(约第57行附近),替换为以下逻辑,提取版本字符串中的数字部分:
    version_output = self._read_line()
    version_parts = version_output.split()
    version_str = version_parts[1]
    # 提取版本中的数字内容
    import re
    match = re.search(r'\d+', version_str)
    if match:
        version_num = match.group()
        self._stockfish_major_version: int = int(version_num.split('.')[0])
    else:
        #  fallback到默认版本
        self._stockfish_major_version = 15
    

3. 对齐两台机器的环境配置

对比正常机器上的Stockfish引擎版本:确认正常机器使用的是稳定版引擎,而非开发版。将当前机器的Stockfish替换为相同版本即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:30:49