-
Notifications
You must be signed in to change notification settings - Fork 0
train.pyを実行したら"ImportError: connot import name 'builder' from 'google.protobuf.internal' ~~"が吐かれる
YusukeYamasaki edited this page May 16, 2024
·
1 revision
タイトル通り。
恐らく、protobuf
というパッケージのバージョンが悪さをしているのが原因である。で、protobufが依存しているのがTensorBoardっぽいので、TensorBoardのバージョンが悪くてそれに引かれてprotobuf
のバージョンが悪いものになっている可能性が高い。
protobuf
のバージョンだけを上げるのではなく、TensorBoard
のバージョンを上げることでprotobuf
のバージョンも上がる。これでtrain.pyのエラーが解消される。
$ pip install --upgrade tensorboard
実行結果(最後の数行を抜粋)
Using cached tensorboard-2.11.2-py3-none-any.whl (6.0 MB)
Using cached protobuf-3.20.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.0 MB)
Installing collected packages: protobuf, tensorboard
Attempting uninstall: protobuf
Found existing installation: protobuf 4.24.4
Uninstalling protobuf-4.24.4:
Successfully uninstalled protobuf-4.24.4
Attempting uninstall: tensorboard
Found existing installation: tensorboard 2.8.0
Uninstalling tensorboard-2.8.0:
Successfully uninstalled tensorboard-2.8.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
wandb 0.12.21 requires Click!=8.0.0,>=7.0, which is not installed.
Successfully installed protobuf-3.20.3 tensorboard-2.11.2
上記コマンド実行時に私の環境だと
wandb
というパッケージのバージョン周りでエラーが出たが、train.pyは問題なく実行できた。