No se puede ejecutar Stockfish en Python
Sé que este no es un foro de programación, aunque está relacionado con el ajedrez, de ahí la ubicación aquí. Básicamente, estoy tratando de configurar stockfish con Python en mi PC. Lo instalé a través de pip install stockfish.
Así que continué e intenté configurar el Stockfish a través de:
from stockfish import Stockfish
stockfish = Stockfish(r'C:\Users\Acer\Desktop\chess\stockfish-11-win')
Eso arroja un WinError 5, acceso denegado:
Exception ignored in: <function Stockfish.__del__ at 0x0429AA48>
Traceback (most recent call last):
File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\stockfish\models.py", line 270, in __del__
self.stockfish.kill()
AttributeError: 'Stockfish' object has no attribute 'stockfish'
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
emily = Stockfish(r'C:\Users\Acer\Desktop\chess\stockfish-11-win\src')
File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\stockfish\models.py", line 33, in __init__
self.stockfish = subprocess.Popen(
File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 854, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 1307, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
PermissionError: [WinError 5] Zugriff verweigert
Probé diferentes descargas de Stockfish, ejecuté Idle o CMD como administrador, reinstalé y usé diferentes PC, pero de alguna manera no puedo trabajar con Stockfish. ¿Alguien puede ayudarme a evitar el acceso denegado? ¿Qué echo de menos al inicializar?
Respuestas
El argumento debe apuntar al ejecutable Stockfish. Si descarga el zip v11 del sitio web de Stockfish , extráigalo y busque los directorios con los ejecutables.
lo extraje paraC:\Users\<username>\Downloads\stockfish-11-win
Los ejecutables están enC:\Users\<username>\Downloads\stockfish-11-win\Windows
Para usar el ejecutable, proporcione la ruta al ejecutable de la siguiente manera:
from stockfish import Stockfish
stockfish = Stockfish(r'C:\Users\<username>\Downloads\stockfish-11-win\Windows\stockfish_20011801_x64.exe')
El valor predeterminado para la ruta que proporciona es "stockfish", por lo que si agrega su directorio con los ejecutables a la ruta y cambia el nombre del exe que desea stockfish, debería poder hacer:
from stockfish import Stockfish
stockfish = Stockfish()
Re. tu comentario:
ningún otro "comando" relacionado con el stockfish funcionará:
OSError: [Errno 22] Invalid argument... por lo que aparentemente solucionó un problema, pero el siguiente ocurrió instantáneamente.
Presumiblemente, ArgumentError se debe a que está pasando un argumento incorrecto. Por ejemplo, ejecuté los comandos en el archivo Léame en el repositorio de github y funciona perfectamente bien.