概要
環境変数 PIP_REQUIRE_VIRTUALENV
に true
を設定することで、グローバル環境で pip install
コマンドが実行されないようにできる。
$ export PIP_REQUIRE_VIRTUALENV=true
問題
venv
を利用して仮想環境ごとに pip
でのパッケージの管理を行う場合を考える。アクティベートをし忘れたまま pip install
コマンドを実行してしまい、意図せずグローバル環境にパッケージがインストールされてしまうことがある。
$ python -m venv .venv # 仮想環境の作成
# 仮想環境にパッケージをインストールする場合、ここで仮想環境をアクティベートしなければならない。
# source ./.venv/bin/activate
$ pip install numpy
Collecting numpy
Using cached numpy-1.21.5.zip (10.7 MB)
Installing build dependencies ... done
...
# 仮想環境がアクティベートされていないため、グローバル環境にパッケージがインストールされてしまっている。
解決方法
環境変数 PIP_REQUIRE_VIRTUALENV
に true
を設定する。
$ export PIP_REQUIRE_VIRTUALENV=true
この環境変数が設定されていると、グローバル環境で pip install
した場合にエラーとなり、意図せずパッケージがインストールされるのを防ぐことができる。
$ pip install numpy
ERROR: Could not find an activated virtualenv (required).
参考URL