ベスパリブ

プログラミングを主とした日記・備忘録です。ベスパ持ってないです。

AttributeError: module 'pip' has no attribute 'get_installed_distributions' のエラー対応

Google Colabでインストールされているパッケージを確認しようとしました。以下はPythonのコードです。

installed_packages = pip.get_installed_distributions()

すると以下のようなエラーが発生しました。

AttributeError: module 'pip' has no attribute 'get_installed_distributions'

エラーでググったら、まんまのエラー対処法が。

python – pip 10.0.0バージョンのpip.get_installed_distributions()に代わる機能はありますか? - コードログ

以下でインポートできるようになります。

try:
    from pip._internal.utils.misc import get_installed_distributions
except ImportError:  # pip<10
    from pip import get_installed_distributions

pipのバージョンが10.0.0からget_installed_distributions()関数が移動したっぽいので、あるいは、

if pip.__version__ >= "10.0.0":
    from pip._internal.utils.misc import get_installed_distributions
else:
    from pip import get_installed_distributions

でもいけました。

で、インストールされているパッケージの確認は以下でできます。

installed_packages = get_installed_distributions()

installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
     for i in installed_packages])

print(installed_packages_list)
# ['absl-py==0.8.0', 'alabaster==0.7.12', 'albumentations==0.1.12', 'altair==3.2.0', 'astor==0.8.0', 'astropy==3.0.5', 'atari-py==0.1.15', 'atomicwrites==1.3.0', 'attrs==19.1.0', ...

参考