memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

pipenvでgym[box2d]をインストールするとCouldn't install package: [1m{}[0mというエラーが出る件

明日、年内最後のゼミがあり、最後は私の担当としたので先日購入した本を少し説明しようかと準備しはじめた。

この書籍1・2章はセットアップとPythonの振り返りなのでほぼ読み飛ばしてよい感じ。本番は3章から。

もう何度やったかわからない環境セットアップ手順。以下、Macで。pyenvとpipenvは導入済みであること。またMacでもM1以降であることを想定している。

本書ではPython3.6推奨だけど、M1では動作しないので3.8を使う。嫌な予感しかしない。

手順

pyenv install 3.8

その後、パッケージをpipenvで入れていく。

mkdir openai_book
cd openai_book
pyenv local 3.8
pipenv --python 3.8
pipenv install gym
pipenv install "gym[atari]"
pipenv install "gym[box2d]"

エラーが出る

と、最後のbox2dを入れるところで以下のメッセージが出る。エスケープシーケンス文字入りなので何がなんだかわからない。ググっても何もなかった。

Couldn't install package: [1m{}[0m

とりあえず、pipenv shellで中にはいり、3.8の環境にしてから、中で「pipenv install "gym[box2d]"」を実行してみた。するとエラーの原因がわかった。なるほど、swigがないっていうエラーなんだと。pipenv installでもこのエラーメッセージがでていたのかな?再現できずわからなくなった。

:       error: command 'swig' failed: No such file or directory
:       
:   
:   note: This error originates from a subprocess, and is likely not a problem with pip.
:   ERROR: Failed building wheel for box2d-py
: ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (box2d-py)
ERROR: Couldn't install package: [1m{}[0m
 [33mPackage installation failed...[0m

復帰手順

どこかでswigっていうやつをいれる対処を見た覚えがあったので気付いた。とりあえず以下を実行したらインストールできた。

brew install swig

ついでに、外にでて再度、「pipenv install "gym[box2d]"」したらエラーなく入った。

結論

pipenv installでエラーがでたら、とりあえずpipenv shellで所望のPythonバージョンに切り替えてpip installしてみると詳細なエラーが見れる、ようだ。。。しらんけど。