stockfish installation
JiahaoYao opened this issue · 4 comments
Hi @calyri,
I followed the stockfish installation instruction to install. I can successfully make the src
file. Then, I set the env val export STOCKFISH_EXECUTABLE="/home/jimmy/Downloads/stockfish-10-linux/src"
.
However, when I run the stockfish bot, I have the following bugs.
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/site-packages/reconchess/scripts/rc_bot_match.py", line 22, in main
winner_color, win_reason, history = play_local_game(white_player_cls(), black_player_cls(), game=game)
File "/home/jimmy/Downloads/reconchess/reconchess/bots/my_bot.py", line 33, in __init__
self.engine = chess.engine.SimpleEngine.popen_uci(stockfish_path)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/site-packages/chess/engine.py", line 2409, in popen_uci
return cls.popen(UciProtocol, command, timeout=timeout, debug=debug, setpgrp=setpgrp, **popen_args)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/site-packages/chess/engine.py", line 2401, in popen
return run_in_background(background, debug=debug)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/site-packages/chess/engine.py", line 185, in run_in_background
return future.result()
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/concurrent/futures/_base.py", line 432, in result
return self.__get_result()
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/site-packages/chess/engine.py", line 164, in background
loop.run_until_complete(coroutine(future))
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/asyncio/base_events.py", line 484, in run_until_complete
return future.result()
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/site-packages/chess/engine.py", line 2390, in background
transport, protocol = await Protocol.popen(command, setpgrp=setpgrp, **popen_args)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/site-packages/chess/engine.py", line 894, in popen
return await loop.subprocess_exec(cls, *command, **popen_args)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/asyncio/base_events.py", line 1211, in subprocess_exec
bufsize, **kwargs)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/asyncio/unix_events.py", line 200, in _make_subprocess_transport
**kwargs)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/asyncio/base_subprocess.py", line 39, in __init__
stderr=stderr, bufsize=bufsize, **kwargs)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/asyncio/unix_events.py", line 706, in _start
universal_newlines=False, bufsize=bufsize, **kwargs)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/subprocess.py", line 729, in __init__
restore_signals, start_new_session)
File "/home/jimmy/anaconda3/envs/reconchess/lib/python3.6/subprocess.py", line 1364, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: '/home/jimmy/Downloads/stockfish-10-linux/src'
So, could you please tell me what is the right way to install the stockfish engine?
@JiahaoYao The stockfish executable environment variable has to point to the actual executable, not the directory that has it. Try updating your variable accordingly and let me know if this works.
@calyri acutally, this is the point I am confused about here. Could you tell me which should be executable directory?
.
├── AUTHORS
├── Copying.txt
├── Linux
│ ├── stockfish_10_x64
│ ├── stockfish_10_x64_bmi2
│ └── stockfish_10_x64_modern
├── Readme.md
├── Top\ CPU\ Contributors.txt
├── appveyor.yml
├── src
│ ├── Makefile
│ ├── benchmark.cpp
│ ├── bitbase.cpp
│ ├── bitboard.cpp
│ ├── bitboard.h
│ ├── endgame.cpp
│ ├── endgame.h
│ ├── evaluate.cpp
│ ├── evaluate.h
│ ├── main.cpp
│ ├── material.cpp
│ ├── material.h
│ ├── misc.cpp
│ ├── misc.h
│ ├── movegen.cpp
│ ├── movegen.h
│ ├── movepick.cpp
│ ├── movepick.h
│ ├── pawns.cpp
│ ├── pawns.h
│ ├── position.cpp
│ ├── position.h
│ ├── psqt.cpp
│ ├── search.cpp
│ ├── search.h
│ ├── syzygy
│ │ ├── tbprobe.cpp
│ │ └── tbprobe.h
│ ├── thread.cpp
│ ├── thread.h
│ ├── thread_win32.h
│ ├── timeman.cpp
│ ├── timeman.h
│ ├── tt.cpp
│ ├── tt.h
│ ├── types.h
│ ├── uci.cpp
│ ├── uci.h
│ └── ucioption.cpp
└── tests
├── instrumented.sh
├── perft.sh
├── reprosearch.sh
└── signature.sh
Thank you so much!
If I understand your directories, then your environment variable should be set as:
export STOCKFISH_EXECUTABLE="/home/jimmy/Downloads/stockfish-10-linux/Linux/stockfish_10_x64
so that it points to the actual executable for your platform under the Linux folder.