Stockfish国际象棋引擎在Heroku上获得:“EngineTerminateError:引擎进程意外死亡”

2024-09-30 04:34:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试构建一个AI国际象棋机器人,具有python后端和React前端。当我在本地运行它时,它工作正常,但当在Heroku上免费部署时,我会收到以下错误消息:

结果=引擎。游戏(棋盘、国际象棋。引擎。限制(时间=0.1)) chess.engine.EngineTerminatedError:引擎进程意外终止(退出代码:0)

linux stockfish文件在Heroku bash上运行良好

这是我的代码:

import chess
import chess.engine
from flask import Flask
import os
import stat
import sys

app = Flask(__name__)


@app.route('/')

def index():
    board = chess.Board()
    if sys.platform == "linux":
        os.chmod("./stockfish_20011801_x64", stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
        engine = chess.engine.SimpleEngine.popen_uci("./stockfish_20011801_x64")
    else:
        engine = chess.engine.SimpleEngine.popen_uci("./stockfish_20011801_x64.exe")
    result = engine.play(board, chess.engine.Limit(time=3))
    board.push(result.move)
    return board.fen()

以下是部分日志:

调试:国际象棋。引擎:<;UCIP协议(pid=10)>;:&燃气轮机&燃气轮机;uciok

调试:国际象棋。引擎:<;UCIP协议(pid=10)>;:<&书信电报;新游戏

调试:国际象棋。引擎:<;UCIP协议(pid=10)>;:<&书信电报;我准备好了

调试:国际象棋。引擎:<;UCIP协议(pid=10)>;:进程退出

调试:国际象棋。引擎:<;UCIP协议(pid=10)>;:连接丢失(退出代码:0,错误:无)

chess.engine.EngineTerminatedError:引擎进程意外终止(退出代码:0)


Tags: 代码引擎importltgtboard协议进程

热门问题