[macOS]公式からインストールしたPythonをアンインストールする
Pythonをアンインストールする
公式からMacにインストールしたPythonをアンインストールしたとき、地味に面倒だったので備忘として書いておきます。
python3の削除
$ sudo rm -rf /usr/local/bin/python3
/usr/bin/pythonではないので注意。
Python.framework(ってなに?)を削除
$ sudo rm -rf /Library/Frameworks/Python.framework
/System/Library/Frameworks/Python.frameworkではないので注意。
シンボリックリンクを削除
$ ls -ld /usr/local/bin/* | grep Python | awk '{print $9}' | xargs sudo rm
lsで一覧を出したあとに見比べて手で消すみたいな記事が多くて焦った。。。コマンド初心者なので備忘としてやっていることを書いておきます。
-
lsの-dオプションとワイルドカードでフルパスを取得 -
grepかけて絞り込み -
awkでファイル名だけ取得 -
xargsで上記の結果をrmに渡す
上記コマンドだと一発で消えてしまうので-vとかつけると慎重に消せるのかも?
~/.zprofileを編集して以下の記述を削除
# Setting PATH for Python 3.10
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH
bashの場合は~/.bash_profileになります。
~/.zprofile.pysaveがあれば削除
$ rm .zprofile.pysave
~/.zshrcにエイリアスとか作ってたら消す
ただインストールするとpythonでは使えなくてpython3とする必要があり、その対策としてエイリアスを作っている場合は消します。
気になったこと
上記手順を実行しながら気になったことをざっと書いておきます。
/Library/Framework/Python.framework`ってなに?
公式ドキュメントによると
Python 実行ファイルやライブラリを含む
と書いてあります。なるほど??
実行ファイルは/usr/local/bin/python3に持っていると思っていた(一般的にはインストールすると/usr/local/binにバイナリが配置されるイメージ)けど違うのかな。
シンボリックリンクとは
ショートカット。なるほど。
ls /usr/local/bin | grep Pythonをしたときに
python3.10 -> ../../../Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10
こんな感じでずらずら出てきたことを踏まえると、実行ファイルの実体は/Library/Frameworks/Python.frameworkに持っていて、/usr/local/binにはエイリアスがある、ということっぽい。
.zprofileって? .zshrcとなにが違うの
.zshrcを編集するのはあるあるだけど、そもそも.zprofileというファイルがあることすら知らなかった。結論、どちらもzshの設定ファイル。
zshにも種類がいくつかあってログインシェルとかインタラクティブシェルとかあるらしい(初めて知った)。で、その種類に応じて読む設定ファイルが違ったり、順序が違ったりするらしい。
.zprofile.pysaveとは
Pythonのバージョンを変えたときなどに.zprofileが更新されるので、前のバージョンの情報を保持するために使っているらしい。
.zprofileに以下の記述がある。
# The original version is saved in .zprofile.pysave
original versionと書いてあるから最初にインストールしたPythonバージョンなのか、更新前のことなのか、もしくは複数バージョンを保持できるのか、そのあたりは分かってない。
Discussion
とても参考になりました!