PythonでStockfishを実行できません

Aug 28 2020

チェス関連ですが、これはプログラミングフォーラムではないことを私は知っています。したがって、ここに配置します。基本的に、私は自分のPCでPythonを使って干し魚をセットアップしようとしています。経由でインストールしましたpip install stockfish

だから私は続けて、次の方法でStockfishをセットアップしようとしました:

from stockfish import Stockfish

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

これにより、WinError 5がスローされ、アクセスが拒否されました。

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

さまざまなStockfishダウンロードを試し、管理者としてIdleまたはCMDを実行し、再インストールしてさまざまなPCを使用しましたが、どういうわけかStockfishを使用できません-拒否されたアクセスをバイパスするのを手伝ってくれる人はいますか?初期化するときに何が恋しいですか?

回答

4 PranavHosangadi Aug 28 2020 at 23:45

引数はStockfish実行可能ファイルを指す必要があります。StockfishWebサイトからv11zipをダウンロードする場合は、それを抽出して、実行可能ファイルのあるディレクトリを見つけます。

私はそれを抽出しました C:\Users\<username>\Downloads\stockfish-11-win

実行可能ファイルは C:\Users\<username>\Downloads\stockfish-11-win\Windows

実行可能ファイルを使用するには、次のように実行可能ファイルへのパスを指定します

from stockfish import Stockfish

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

指定するパスのデフォルト値はです"stockfish"。したがって、実行可能ファイルを含むディレクトリをパスに追加しstockfish、必要なexeの名前を変更すると、次のことができるようになります。

from stockfish import Stockfish

stockfish = Stockfish()

再。あなたのコメント:

他のstockfish関連の「コマンド」は機能しません:OSError: [Errno 22] Invalid argument...したがって、問題は修正されたように見えますが、次はすぐに発生しました。

ArgumentErrorは、間違った引数を渡したことが原因である可能性があります。たとえば、githubリポジトリのreadmeでコマンドを実行したところ、問題なく動作しました。