我正在尝试构建一个带有 python 后端和 React 前端的人工智能国际象棋机器人。当我在本地运行它时,它工作正常,但是在 Heroku 上免费部署时,我收到以下错误消息:
结果 = engine.play(board, chess.engine.Limit(time=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()
以下是部分日志:
DEBUG:chess.engine:<UciProtocol (pid=10)>: >> uciok
DEBUG:chess.engine:<UciProtocol (pid=10)>: << ucinewgame
DEBUG:chess.engine:<UciProtocol (pid=10)>: << isready
DEBUG:chess.engine:<UciProtocol (pid=10)>: 进程退出
DEBUG:chess.engine:<UciProtocol (pid=10)>:连接丢失(退出代码:0,错误:无)
chess.engine.EngineTerminatedError:引擎进程意外死亡(退出代码:0)