🙆

dockerで作成したubuntu環境にて"Unable to locate package" errorが出た件について

2023/09/29に公開

dockerでubuntuイメージからコンテナを作成したまではいいがPyTorchをinstallできなかった件についてまとめる。

問題の説明

初めてのDocker利用-その1」に従ってubuntuイメージからコンテナを作成した。ここにPyTorchをinstallしようと

root@0ab98a9c5be7:~# apt install torch

を実行したところ

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package torch

というようなエラーが出た。

解決方法1 apt updateしてからapt install torchを実行(効果なし)

ネットでE: Unable to locate package torchというエラーについて調べるとapt updateを実行すれば良いという記事が多かったので試した。
その結果、インストールできなかった。

解決方法2 pipコマンドでPyTorchをインストール(効果なし)

解決方法がよくわからなかったので、とりあえずpipコマンドをインストールして、PyTrochをインストールしてみた。

root@0ab98a9c5be7:~# apt install pip
略
root@0ab98a9c5be7:~# pip install torch

を実行したところ、

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

と出力され、インストールできなかった。

解決方法3 apt install python3-torchで実行(効果あり)

解決方法2ではPyTorchのインストールができなかったが、エラーの原因を読み解くことができた。先のエラーメッセージの一部を抜粋すると

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

ここから読み取れることとして、

  • Pythonに関わるpackageをインストールする場合apt install python3-xyzを実行する必要がある
  • 先のpython3-xyzxyzはインストールしようとしているパッケージの名称である。
    よって今回実行すべきコマンドは
root@0ab98a9c5be7:~# apt install python3-torch

である。後ほどpytorchのバージョンを確かめると

root@0ab98a9c5be7:~# apt list --installed python3-torch
Listing... Done
python3-torch/mantic,now 2.0.1+dfsg-4 arm64 [installed]

と出力され、正しくインストールされていた。

Discussion