20240121121237 pythonで制御工学の学習環境を作る

pythoncontrol_theory

サポートページ

ここに書いてある通りにやれる場合はそうする: 『Pythonによる制御工学入門(改訂2版)』サポートページ | Yuki MINAMI

がんばる場合

そうできない or やりたくない場合、 windowsの人は “windowsの場合、wsl2上でubuntuを動かし、そこで普通のpythonを使う”がよさそう。 macやlinuxでは、あまり大変ではないかも。

Google Colaboratory上で環境を作る場合のうれしくないことは、

  • Notebookを開くたびに、毎回 pip installを動かす必要があり、時間がかかる
  • そのworkaroundとして、google driveにpipをインストールする方法があるが、google driveの検索が著しく使いにくくなるため、その方法もとりたくない。

Anaconda/Minicondaなどを使う方法は、 20240123 時点ではvscode上でうまく動かない。 condaコマンドによる仮想環境構築が途中で止まってしまうなどした。

windowsの普通のpythonを使おうとすると、slycotのインストールがうまくいかない。検索するとうまくいっていない人が沢山でてくる。ここは頑張るところではない。

・・・などを試した結果、wsl2上にubuntuをインストール、それをwindows上のvscodeから使用する環境を作った。

以下はubuntu上で実行している。

venvを使い学習用環境を作る。 学習用フォルダを作り、その中で python -m venv .venv code . vscodeが起動せず、cannot run .exe files: exec format error とかエラーが出る場合は wsl2からwindowsのvs codeが起動できない に書いてある方法で起動するようになる。

vscodeが開いたら、 Python: Create Terminal コマンドを実行。自動で.venvが選ばれた環境が起動する。

事前に必要なインストールするもの gfortran

開いたターミナル内で、 DISPLAY= pip install control slycot matplotlib notebook DISPLAY変数を無効にする理由はwsl2上でpipを実行すると、ものすごく時間がかかるから。

Jupyter: Select Interpreter to Start Jupyter Server コマンドを実行。作った.venvの環境を選ぶ。 windows側のpath /mnt/c/… が表示されるけど、そちらではない方を選ぶ。

実行すると、Error loading webview: Error: Could not register service workers: とかいうダイアログが表示されて起動できない場合は、 python - Error while opening ipynb notebook in VSCode - Stack Overflowこれを踏んでいる。 .ipynbが開けなくなった。Answerの通り、vscodeを再起動したら直る。

これで環境構築できた(はず)。