[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
とても参考になりました!