Search code examples
pythonpython-chess

Python-chess: module 'chess.engine' has no attribute 'SimpleEngine'


This is part of a larger project, but I created a new file to solve this one problem. Sorry, I am still new to coding. Currently, I am trying to get stockfish evaluations for positions in Chess, however whenever I try to run the code, I get "AttributeError: module 'chess.engine' has no attribute 'SimpleEngine'" I have looked over the internet and can't find anything, am I being dumb? I tried the code from the documentation as well, and I still get the same error. This is the code from the documentation:

!pip install python-chess
!pip install stockfish
import chess
import chess.engine
from stockfish import Stockfish
import asyncio

engine = chess.engine.SimpleEngine.popen_uci("stockfish")

board = chess.Board()
while not board.is_game_over():
    result = engine.play(board, chess.engine.Limit(time=0.100))
    board.push(result.move)

engine.quit()

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-36-5ab68cc48dde> in <module>()
      4 import asyncio
      5 
----> 6 engine = chess.engine.SimpleEngine.popen_uci("stockfish")
      7 
      8 board = chess.Board()

AttributeError: module 'chess.engine' has no attribute 'SimpleEngine'

Solution

  • I suppose you use an outdated version of the python-chess package. Your current version is 0.23.11 while the latest version is 1.999.

    You should try to upgrade your package:

    pip install python-chess --upgrade