Stockfish kann auf Python nicht ausgeführt werden
Ich weiß, dass dies kein Programmierforum ist, obwohl es sich um Schach handelt, daher die Platzierung hier. Grundsätzlich versuche ich, Stockfish mit Python auf meinem PC einzurichten. Ich habe es über installiert pip install stockfish.
Also fuhr ich fort und versuchte, den Stockfisch einzurichten über:
from stockfish import Stockfish
stockfish = Stockfish(r'C:\Users\Acer\Desktop\chess\stockfish-11-win')
Das wirft einen WinError 5, Zugriff verweigert:
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
Ich habe verschiedene Stockfish-Downloads ausprobiert, den Idle oder CMD als Administrator ausgeführt, neu installiert und verschiedene PCs verwendet, aber irgendwie kann ich nicht mit Stockfish arbeiten - kann mir jemand helfen, den verweigerten Zugriff zu umgehen? Was vermisse ich beim Initialisieren?
Antworten
Das Argument muss auf die ausführbare Datei von Stockfish verweisen. Wenn Sie die v11-Zip-Datei von der Stockfish-Website herunterladen , extrahieren Sie sie und suchen Sie die Verzeichnisse mit den ausführbaren Dateien.
Ich habe es extrahiert C:\Users\<username>\Downloads\stockfish-11-win
Die ausführbaren Dateien befinden sich in C:\Users\<username>\Downloads\stockfish-11-win\Windows
Um die ausführbare Datei zu verwenden, geben Sie den Pfad zur ausführbaren Datei folgendermaßen an:
from stockfish import Stockfish
stockfish = Stockfish(r'C:\Users\<username>\Downloads\stockfish-11-win\Windows\stockfish_20011801_x64.exe')
Der Standardwert für den von Ihnen angegebenen Pfad lautet "stockfish": Wenn Sie also Ihr Verzeichnis mit den ausführbaren Dateien zum Pfad hinzufügen und die gewünschte Exe umbenennen stockfish, sollten Sie in der Lage sein:
from stockfish import Stockfish
stockfish = Stockfish()
Re. dein Kommentar:
Keine anderen Stockfish-bezogenen "Befehle" werden funktionieren:
OSError: [Errno 22] Invalid argument... also schien es ein Problem zu beheben, aber das nächste trat sofort auf.
Der ArgumentError liegt vermutlich daran, dass Sie ein falsches Argument übergeben. Zum Beispiel habe ich die Befehle in der Readme-Datei im Github-Repository ausgeführt und es funktioniert einwandfrei.