環境
- Python 3.9.0
- pylint 2.6.0(2020/12/13 時点で最新)
問題
pylint を実行したときに、typing モジュールの使用箇所に誤ったエラーが表示される。
例:
$ pylint module
************* Module module
module.py:213:35: E1136: Value 'Union' is unsubscriptable (unsubscriptable-object)
typing.Union
は typing.Union[int,str]
のように型を示すために使うもので、これが unsubscriptable というのは明らかな誤りです。
対処法
Python のバージョンを 3.8.6 まで下げたら直りました。
なお、GitHub 上の Pull Request を見る限り、pylint の Git リポジトリ上の master ブランチでは直っているようです。(pylint の最新リリースの後に修正された模様。)どうしても Python 3.9 で使いたい方は、Git リポジトリからインストールすることでも直せるかもしれません。
感想
Python は最新リリースの手前くらいのマイナーバージョンの方が、パッケージまで安定していて良いと思いました。