概要
ubuntu 24.04で,ターミナルからpipを利用してライブラリをインストールしようとするとエラーになる.
- ubuntu 24.04
- Python: 3.12.3
> pip3 install --user numpy
---
error: externally-managed-environment
︙
hint: See PEP 668 for the detailed specification.
エラー発生
解決方法:仮想環境を作成が推奨らしい
手順 : ホームディレクトリで実行
- sudo apt install python3-venv
- python3 -m venv .python3_venv
- source .python3_venv/bin/activate
1. pipでライブラリをインストールできない
2024年これはubuntu LTSが公開される年.ということで,ubuntu 24.04をインストール.Pythonの環境を整えるために,いつものように,numpyをインストール.pip3 install --user numpyを実行.ここで,エラー発生
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.12/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.
DeepLでそのまま翻訳してみた.
エラー: 外部管理環境
× この環境は外部で管理されています
╰─> Pythonパッケージをシステム全体にインストールするには、apt install
python3-xyz、xyzはインストールしようとしているパッケージです。
をインストールします。
Debianパッケージ以外のPythonパッケージをインストールしたい場合、
python3 -m venv path/to/venv を使って仮想環境を作ります。
そしてpath/to/venv/bin/pythonとpath/to/venv/bin/pipを使います。そして
python3-fullがインストールされていることを確認してください。
Debian以外のパッケージのPythonアプリケーションをインストールしたい場合は、
pipx install xyz を使うのが一番簡単でしょう。仮想環境を管理してくれます。
pipx がインストールされていることを確認してください。
詳細は /usr/share/doc/python3.12/README.venv を参照してください。
note: もしこれが間違いだと思うなら、PythonのインストールやOSの配布元に連絡してください。Python のインストールや OS を壊す危険を冒してでも、 --break-system-packages を渡すことでこれを上書きすることができます。
hint: 詳細な仕様は PEP 668 を参照してください。
どうも今までのようにpipでライブラリをインストールするには仮想環境が必要らしい.pipxや--break-system-packagesは使わない方針にした.
2. venvの方法を使ってみた
エラーメッセージに従い,仮想環境を作成する方向で作業することにした.
Debianパッケージ以外のPythonパッケージをインストールしたい場合、
python3 -m venv path/to/venv を使って仮想環境を作ります。
解決の手順
ホームディレクトリで実行
- sudo apt install python3-venv
- python3 -m venv .python3_venv
- source .python3_venv/bin/activate
1. sudo apt install python3-venv
Python3の仮想環境を作るモジュールらしい.これがないと次のコマンドが実行できない.メッセージによると python3-full
パッケージをインストールする必要があると書かれているが,利用するのはpython3-venv
で大丈夫そう.
2. python3 -m venv .python3_venv
メッセージに記述の python3 -m venv path/to/venv
を実行する.path/to/venv/は仮想環境のディレクトリを作りたい場所を指定すれば良いみたい.今回は,ホームディレクトリ直下の.python3_venv
ディレクトリを指定してみた.
3. source .python3_venv/bin/activate
仮想環境を有効化するためのコマンド.シェルごとに異なるので注意.zshを利用しているので,bin/activate
を使う.
シェル | コマンド |
---|---|
zsh | source <venv>/bin/activate |
fish | source <venv>/bin/activate.fish |
tcsh | source <venv>/bin/activate.csh |
表の<venv>は仮想環境作成時に指定したディレクトリ.
source .python3_venv/bin/activateを実行すると,ターミナルのプロンプトが変わります.仮想環境で指定したディレクトリが表示されています.
(.python3_venv) ~/$
この状態でpipが使えるようになりました.しかも,pipでpip3と同じになります.
ちゃんとpipもアップデートできます.
(.python3_venv) ~/$ pip install -U pip
ライブラリもインストールできるはず.
(.python3_venv) ~/$ pip install numpy
---
Collecting numpy
Using cached numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)
Using cached numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.2 MB)
Installing collected packages: numpy
Successfully installed numpy-2.0.1
numpyインストールできました!!
その他
仮想環境を使い分けしたり,複数人でPCを利用しないので,シェル起動時に自動的にPythonの仮想環境が利用できるようにしておく.毎回 source .python3_venv/bin/activate
を入力しなくてよいはず.
source $HOME/.python3_venv/bin/activate
詳細は,PythonのDocumentationに記載されていた!!さすが公式ドキュメント.