pip install --user を config でデフォルトにする
最近(2年以上前)、pip がデフォルトで --user でインストールするようになった。
ただ、この機能が有効になるにはいくつかの条件がある。
- The user has not explicitly specified otherwise in the command line, environment variable, or a config file.
- The --prefix and --target options are not in use.
- The global site-packages dir is not writeable, so doing a non-user install would fail.
- User site-packages are enabled - to avoid surprises in isolated environments.
ここで、Python を brew でインストールすると brew はユーザー権限で入るために 3 が満たせないことが多く、 brew 内のグローバルに入ってしまう状態が続いていた。
確かに権限的にはグローバルでも問題ないが、brew ディレクトリの中はクリーンであって欲しい。brew を使っていてもデフォルトで --user にしたい場合は、pip の config で設定する。
pip の config ではコマンドのオプションのデフォルトを環境変数や config ファイル経由で設定することができる。
今回は config ファイル(~/.config/pip/pip.conf
)で以下のように設定した。
[install] user = true
こうして、環境によらず、また多少古い pip でもデフォルトで --user で入るようになった。