Windows + Anaconda/python3.9+ とPHYSBOの問題について

動作環境確認

 皆様からのご報告のおかげで、動作不良の起こる環境を解決できております。引き続き、不具合等のご報告、お願いいたします。


Launcher.py, bayes_gp_gui.py, bayes_gp.plain.py のインストール方法と動作確認

pythonには様々な配布形式のパッケージがありますが、ここでは anaconda (python3x) を前提とします(最新版で動作確認をしています)。

注:

Step 1: Anacondaのインストール

Step 3: pythonライブラリィ/モジュールのインストール

注: 以下のライブラリィはanacondaに標準で含まれているので、標準環境で使う場合は、インストールする必要はありません。
  anaconda以外のpythonを使う場合や、Step 4の注にあるように仮想環境で実行する場合、モジュールエラーが出た場合にインストールしてください
  1. matplotlibをインストールします
      > conda install matplotlib
      
  2. pandasをインストールします
      > conda install pandas
     
  3. openpyxlをインストールします
      > conda install openpyxl
     
  4. chardetをインストールします
      > conda install chardet
  5. seabornをインストールします
      > conda install seaborn
      

anaconda以外のpythonの場合、numpy, scipy などのインストールが必要な場合があります

 

Step 4': PHYSBOに必要な仮想環境の作成

注: まず、以下の Step 4 を試してください。
   ただし、Windows上では、PHYSBOは python 3.6でないと動かない可能性があります。
   Step 4 の手順でエラーが出る場合、次の手順で python3.6の仮想環境を作ってください

  1. python3.6の環境を作成します
     > conda create -n py36 python=3.6
     
  2. py36 を有効化します
      > conda activate py36
     
  3. Step 3 のモジュールをインストるします
Step 4: PHYSBOのインストール
  1. pysboをインストールします
      > pip install physbo
     

以下のエラーが出たら、Microsoft C++ Build Toolsをインストールする必要があります。

..(cut)...  physbo\misc\_src\logsumexp.pyx tree = Parsing.p_module(s, pxd, full_module_name) error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ 
  ---------------------------------------- 
  ERROR: Failed building wheel for physbo 
  Failed to build physbo 
  ERROR: Could not build wheels for physbo which use PEP 517 and cannot be installed directly

以下の対処法の参考URLはこちら: Microsoft Visual C++ 14.0 or greater is required.」が出た場合の対処方法 | ジコログ

 i )  ここ から vs_buildtools....exe をダウンロードし、インストール。この際、「C++によるデスクトップ開発」をチェックして、インストールしてください
 ii) インストールが終わったら、Windowsのスタートメニューから "Visual Studio XXXX" の "Developer Command Prompt for VS XXX" を起動し、
    > pip install physbo
  でインストールしてください (上記コマンドプロンプト以外でも、Build toolsへのPATHが通っている環境ならOK)。


physboの古いバージョンがインストールされてしまう問題について

 pipを使ってphysbo等をインストールする際、proxyによって通信エラーが出て、古いphysbo (ver0.2.0など)がインストールされるケースが報告されています。
次のようなメッセージ
 bayes_gp_plain.pyのエラーメッセージ: 
  File "bayes_gp_plain.py", line 324, in execute
  policy = physbo.search.discrete.policy(test_X = X_all, initial_data = (idx_train, t_train))
  TypeError: __init__() got an unexpected keyword argument 'initial_data'
が出た場合、physboのバージョンが古い可能性が高いです。最新バージョンがインストールできない理由が
 pipのエラーメッセージ: 
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken 
  by 'ProtocolError('Connection aborted.', ConnectionResetError(10054, '既存の接続はリモート ホストに強制的に切断されました。', None, 10054, None))': 
  /simple/setuptools/
の場合、下記のURLを参考にproxy設定をしてphysbo最新版をインストールしてみてください。
  https://weedy-seama.com/pip-proxy-error