Stockfish Python'da çalıştırılamıyor

Aug 28 2020

Bunun bir programlama forumu olmadığını biliyorum, yine de satrançla ilgili, bu yüzden buradaki yerleştirme. Temel olarak, stockfish'i PC'mde Python ile kurmaya çalışıyorum. Üzerinden yükledim pip install stockfish.

Ben de devam ettim ve Stockfish'i şu yolla kurmaya çalıştım:

from stockfish import Stockfish

stockfish = Stockfish(r'C:\Users\Acer\Desktop\chess\stockfish-11-win')

Bir WinError 5 atan, erişim reddedildi:

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

Idle veya CMD'yi yönetici olarak çalıştıran farklı Stockfish İndirmelerini denedim, farklı PC'leri yeniden yükledim ve kullandım, ancak bir şekilde Stockfish ile çalışamıyorum - erişimin reddedilmesini atlayarak bana yardım edebilecek kimse var mı? Başlatırken neyi özlüyorum?

Yanıtlar

4 PranavHosangadi Aug 28 2020 at 23:45

Argüman, Stockfish yürütülebilir dosyasını işaret etmelidir. V11 zip dosyasını Stockfish web sitesinden indirirseniz , çıkartın ve çalıştırılabilir dosyaların bulunduğu dizinleri bulun.

Ben onu çıkardım C:\Users\<username>\Downloads\stockfish-11-win

Yürütülebilir dosyalar C:\Users\<username>\Downloads\stockfish-11-win\Windows

Yürütülebilir dosyayı kullanmak için, yürütülebilir dosyanın yolunu şu şekilde verin :

from stockfish import Stockfish

stockfish = Stockfish(r'C:\Users\<username>\Downloads\stockfish-11-win\Windows\stockfish_20011801_x64.exe')

Verdiğiniz yol için varsayılan değer şu şekildedir "stockfish", bu nedenle dizininizi yürütülebilir dosyalar ile yola eklerseniz ve istediğiniz exe'yi yeniden adlandırırsanız stockfish, şunları yapabilmeniz gerekir:

from stockfish import Stockfish

stockfish = Stockfish()

Yeniden. senin yorumun:

Stockfish ile ilgili başka hiçbir "komut" işe yaramayacaktır: OSError: [Errno 22] Invalid argument... bu yüzden bir problemi çözmüş gibi görünüyor, ancak bir sonraki anında oluştu.

ArgumentError muhtemelen yanlış bir argüman ilettiğiniz içindir. Örneğin , github deposunda benioku'daki komutları çalıştırdım ve mükemmel bir şekilde çalışıyor.