Python国际象棋:如何阻止Chess.engine.SimpleEngine.popen_uci()打开外壳

2024-04-18 23:20:18 发布

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

我正在制作自己的象棋GUI,并使用python象棋和stockfish。将其冻结为可执行文件后,每次我调用chess.engine.SimpleEngine.popen_uci('location\\of\\stockfish'),它都会为stockfish打开shell,如果我关闭shell,stockfish将停止工作。我该怎么做才能使shell只在后台运行,并且用户看不到它


Tags: of用户可执行文件guilocationshellengine后台
2条回答

在@BoarGules上展开回答:

engine = chess.engine.SimpleEngine.popen_uci(sf,startupinfo = subprocess.STARTUPINFO(dwFlags=subprocess.STARTF_USESHOWWINDOW))

这是一个特定于平台的问题,我从'location\\of\\stockfish'猜测Windows是您感兴趣的平台

popen_uci接受**(额外关键字)参数,您可以使用该参数将参数传递给subprocess.Popen()。使用passthrough参数startupinfo提供subprocess.STARTUPINFO的实例。这反过来又可以设置win32标志wShowWindow来执行您想要的操作

相关问题 更多 >