我正在尝试构建一个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)
当我卸载eventlet时,它确实起了作用。我试图卸载它,因为它与asyncio非常相似,asyncio是python chess的一个依赖项
相关问题 更多 >
编程相关推荐