しがない地方院生のsotaです。
初心者のため間違いや改善策、指摘・質問などがありましたらコメントお願いします。
macをクリーンインストールしてhomebrewでpython3を入れ直した際の備忘録です。
具体的に出たエラーは
1.
brew install python3
...
error: could not delete '/usr/local/lib/python3.7/site-packages/pip/_internal/configuration.py': Permission denied
...
brewでpython3(/usr/local/bin)をインストールした後もデフォルトで入ってるpython3 (/usr/bin)を呼び出される問題です。
1. error: could not delete '/usr/local/lib/python3.7/site-packages/pip/_internal/configuration.py': Permission denied
brew install python3
でpythonを更新しようと思っても上記のエラーでうまく中途半端にしかインストールできませんでした。
これは
/usr/local/lib/python3.7/site-packages/
のユーザーがrootのため発生していました。
そのため、
sudo chown -R [あなたのユーザー名(your user name)] /usr/local/lib/python3.7/site-packages
でユーザーを変更することで解決しました。
2. brewでpython3(/usr/local/bin)をインストールした後もデフォルトで入ってるpython3 (/usr/bin)を呼び出される問題
1.のエラーを解決してpython3.7.7をインストールできた後も
% python3
Python 3.7.3 (default, Apr 24 2020, 18:51:23)
と3.7.7が起動しません。
pip3も動作が怪しかったです。
pathを見ると
% which python3
/usr/bin/python3
となってます。
brewでインストールしたpythonは/usr/local/bin
に来るので、これが原因です。
しかし、
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
/usr/local/bin
が$PATHの先頭に来ており、問題はないはずです。
これはよく分かっていませんが、
.bashrc もしくは.zshrc (最近macのデフォルトのshellがzshに変更されています。)
export PATH=/usr/local/bin:$PATH
を追記し、source .bashrc
もしくはsource .zshrc
を行います。
これで
% echo $PATH
/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
となり、
% which python3
/usr/local/bin/python3
% python3
Python 3.7.7 (default, Mar 10 2020, 15:43:33)
と無事解決できました。pip3も同様に解決しました。
/usr/local/bin:/usr/local/bin:
となっているのが不可解で気持ち悪いですが動作できたので、私の力ではここで妥協にしました..
これの原因や意味を知っている方がいましたら、是非コメントで教えてください。