🌊

error: externally-managed-environment

2024/11/06に公開

error: externally-managed-environment

WSLにて、pip install ....を行った際のエラーと対処方法

エラー内容

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.

対処方法

  1. 仮想環境 venvの構築
  • プロジェクト単位で個別に環境構築が可能
  • 開発プロジェクトに適している
  1. pipxでのインストール
  • pipxはCLIで動作するパッケージを管理することに向いている

    pipx は、システムにインストール済みの他のパッケージとの間に依存関係の衝突を起こすことなく Python のコマンドラインアプリケーションをインストールし動作させるためのツールhttps://packaging.python.org/ja/latest/key_projects/

    https://pipx.pypa.io/stable/ より引用

  1. system-wide python packageのインストール
  • Ubuntuの公式リポジトリからPythonパッケージをインストールということ
    • apt install python3-[package-name]
  • システム全体に影響を及ぼすため、システム管理ツールなどの作成時に使用

(私含め)開発環境を構築されたい方が多いと想定し、
以下、1.仮想環境venvの構築についての具体的な方法を解説

主要コマンド

# python3-venv パッケージのインストール
sudo apt install python3-venv

# 仮想環境の作成(任意の場所に任意の名前で作成可能)
# 下記はcurrent directory下にvenvという名前で作成
python3 -m venv venv

# 仮想環境の有効化
source ~/venv/bin/activate

# 仮想環境内で[package-name]インストール
pip install [package-name]

# 仮想環境を終了
deactivate

実際の使用例

# プロジェクト用のディレクトリへ移動
cd ~/project
# プロジェクトの仮想環境を読み込む
source venv/bin/activate

# プロジェクトで必要なパッケージをインストール(例: pandas)
pip install pandas

# install済みパッケージを確認
pip list

# requirements.txtを作成(packageの依存関係が保存されている)
pip freeze > requirements.txt

# 仮想環境を終了
deactivate

Discussion