使用Python和Stockfish开发国际象棋机器人遇chess.uci属性错误求助
解决chess库中'uci'模块不存在的问题
问题原因:chess库从1.0版本开始废弃了
chess.uci模块,统一使用chess.engine模块处理与Stockfish等引擎的交互,直接调用chess.uci会触发AttributeError。修复步骤:
- 先确认你的chess库版本,执行命令:
若版本≥1.0,按以下方式修改代码。pip show chess - 将原代码:
替换为:chess.uci.popen_engine("stockfish")import chess.engine engine = chess.engine.SimpleEngine.popen_uci("stockfish") - 后续引擎交互需使用新API,比如获取最佳走法的示例:
board = chess.Board() result = engine.play(board, chess.engine.Limit(time=0.1)) board.push(result.move) print(board) engine.quit()
- 先确认你的chess库版本,执行命令:
注意事项:如果Stockfish可执行文件不在系统环境变量PATH中,需传入完整文件路径,例如Windows系统:
"C:/Program Files/Stockfish/stockfish-windows-x86-64.exe",Linux/macOS系统:"/usr/local/bin/stockfish"。
内容的提问来源于stack exchange,提问作者ECMC
相关产品推荐
相关产品推荐

