python-chess — AttributeError: модуль «шахматы» не имеет атрибута «pgn»

Я пытаюсь экспортировать игру в шахматы на питоне в файл pgn. документация рекомендует:

import chess
.
.
chessBoard = chess.Board()
.
.    
#Play the game and when over do below
game = chess.pgn.Game.from_board(chessBoard)
with open('output.pgn', 'a') as the_file:
    print(game, file=the_file, end="\n\n")

Но строка chess.pgn.Game.from_board(chessBoard) выдает следующую ошибку:

AttributeError: модуль «шахматы» не имеет атрибута «pgn»

pgn также отображается в intellisense, когда я набираю chess., поэтому редактор также может видеть, что в chess есть pgn. Это python 3.x, работающий в VS2015 на Windows 10.

Что может быть причиной этого?


person Achilles    schedule 07.03.2017    source источник
comment
У меня была такая же ошибка: AttributeError: 'module' object has no attribute 'svg'   -  person Purplejacket    schedule 16.04.2017


Ответы (2)


Чтобы использовать модуль pgn, вам также нужно будет выполнить import chess.pgn

person Mithilesh Gupta    schedule 07.03.2017

Для тех из вас, у кого не получилось работать с принятым ответом, проверьте, назвали ли вы свой файл chess.py (где вы написали import chess). Если это так, измените его на что-то другое, например pychess.py.

Я считаю, что причина, по которой ваш файл не работает с именем chess.py, заключается в том, что он по существу импортирует себя, и, конечно, там нет chess.Board().

person Casimir Rönnlöf    schedule 03.05.2020