# MacでPythonとNode.jsをアンインストールする方法

> PATH上のPythonやNodeを特定し、Homebrew、pyenv、conda、nvm、インストーラのコピーをそれぞれ正しい方法で取り除き、PATHの行とキャッシュを片付けます。

Published: 2026-10-06 | Updated: 2026-10-17

MacでPythonやNode.jsをアンインストールするときは、まずどのコピーを消すのかを突き止めます。たいてい複数のコピーがあり、それぞれ消し方が違うからです。`which -a python3` や `which -a node` を実行してPATH上のコピーをすべて確認し、それぞれを入れたツールを通して取り除きます。Homebrewなら `brew uninstall`、pyenvなら `pyenv uninstall`、nvmなら `nvm uninstall`、condaならAnacondaが文書化している手順、python.orgやnodejs.orgのインストーラなら、そのパッケージが書き込んだファイルを削除します。`/usr/bin/python3` には手を付けないでください。これはmacOSとAppleの開発ツールのものです。

そのあと、これらのツールがシェルの起動ファイルに足した行と、ホームフォルダに残したキャッシュを片付けます。このガイドは、特定する、取り除く、PATHを片付ける、キャッシュを消す、確認する、の順に進みます。

## PATH上のPythonとNodeをすべて見つける

次のコマンドは読み取るだけです。

```
which -a python3 python node npm
type -a python3 node
python3 -c 'import sys; print(sys.executable)'
```

`which -a` はPATHの順にすべての一致を表示し、最初の行がそのコマンドを打ったときに実際に動くものです。`type -a` はエイリアスとシェル関数も表示します。これはバージョンマネージャで効いてきます。たとえばnvmは `nvm` をシェル関数として定義し、pyenvや一部の構成は本物のバイナリの前にshimを置きます。シンボリックリンクは `ls -l` でたどり、実際の行き先を確かめます。

表示されたパスを次の表と照らし合わせます。

| パスの先頭 | 入れたもの | 消し方 |
| --- | --- | --- |
| `/usr/bin/python3` | XcodeとCommand Line Tools向けのmacOS | 触らない |
| `/Library/Frameworks/Python.framework`、またはそこを指す `/usr/local/bin` のリンク | python.orgのインストーラ | 3つの部分を取り除く（後述） |
| `/opt/homebrew`（Appleシリコン）、または `/usr/local/Cellar`、`/usr/local/opt`（Intel） | Homebrew | `brew uninstall` |
| `~/.pyenv/shims` または `~/.pyenv/versions` | pyenv | `pyenv uninstall` |
| `~/anaconda3`、`~/miniconda3`、`/opt/anaconda3`、`/opt/miniconda3` | AnacondaまたはMiniconda | `conda init --reverse` のあとフォルダを削除 |
| Homebrewのリンクではない `/usr/local/bin/node` | nodejs.orgのインストーラ | ファイルを削除し、レシートを消す |
| `~/.nvm/versions/node` | nvm | `nvm uninstall` |
| `~/Library/Application Support/fnm` または `~/.fnm` | fnm | `fnm uninstall` のあとフォルダを削除 |
| `~/.volta` | Volta | `~/.volta` を削除 |

Intel Macでは、Homebrewもnodejs.orgやpython.orgのインストーラも `/usr/local` に書き込みます。そこにあるファイルを自分が消してよいものと決めつける前に、`ls -l` でHomebrewのCellarへのリンクかどうかを確認してください。

## macOSのPythonは消さない

[macOS向けのPythonドキュメント](https://docs.python.org/3/using/mac.html)ははっきり書いています。最近のmacOSには `/usr/bin/python3` に `python3` コマンドが含まれ、これはAppleの開発ツールが提供し、そのために使うPythonにリンクしています。Appleが管理し、Apple製やサードパーティ製のソフトウェアが使っているので、変更したり削除しようとしたりしてはいけません。そもそも封印されたシステムボリュームの上にあります。python.orgやHomebrewの2つ目のPythonはこれと共存できます。どちらを動かすかはPATHで切り替えるもので、Appleのものを消して切り替えるものではありません。

## python.orgから入れたPythonをアンインストールする

同じドキュメントによると、python.orgのインストーラはMacに3つのものを置きます。IDLEとPython Launcherが入ったアプリケーションフォルダ内の `Python 3.x` フォルダ、`/Library/Frameworks/Python.framework` にあるフレームワーク、`/usr/local/bin` にある実行ファイルへのシンボリックリンクです。ドキュメントには、Pythonをアンインストールするにはこの3つを取り除けばよいとあります。

バージョンは1つずつ取り除きます。たとえば3.12なら次のようにします。

```
ls /Library/Frameworks/Python.framework/Versions
ls -l /usr/local/bin | grep 'Python.framework/Versions/3.12'
```

1つ目のコマンドはインストール済みのバージョンを一覧にし、2つ目は `/usr/local/bin` のどのリンクが消そうとしているバージョンを指しているかを表示します。そのうえで `/Applications/Python 3.12` をゴミ箱に入れ、管理者権限で `/Library/Frameworks/Python.framework/Versions/3.12` を削除し、2つ目のコマンドが表示したリンクだけを削除します。最後のバージョンを取り除くなら、`Python.framework` フォルダごと消して構いません。

インストーラはレシートも残します。`pkgutil --pkgs | grep -i python` で見つかります。レシート自体が何かを動かすことはありませんが、`pkgutil --files <id>` でそのパッケージが書き込んだものが正確にわかり、これがいちばん確かなパスの一覧です。レシートの読み方と消し方は[.pkgアプリをアンインストールする方法](https://mole.fit/ja/blog/how-to-uninstall-pkg-apps-mac)で説明しています。

## Homebrewで入れたPythonをアンインストールする

HomebrewはPythonのformulaを `python@3.13` のようにバージョン付きで名付けています。先に、何が入っていて何がそれに依存しているかを確認します。

```
brew list --formula | grep '^python'
brew uses --installed python@3.13
```

`brew uses` がほかのformulaを表示したら、それらはそのPythonを必要としていて、残っている間はHomebrewがアンインストールを拒みます。先に依存しているものを取り除くか、そのバージョンを残します。何も依存していなければ `brew uninstall python@3.13` で取り除け、`brew autoremove` でほかに必要とされていない依存関係を片付けられます。Homebrew自体を取り除くのは別の、ずっと大きな作業です。[Homebrewをアンインストールする方法](https://mole.fit/ja/blog/how-to-uninstall-homebrew-mac)を見てください。

## pyenvのバージョン、またはpyenv自体をアンインストールする

[pyenvのREADME](https://github.com/pyenv/pyenv)によると、古いバージョンは `pyenv uninstall <version>` で取り除き、`pyenv prefix <version>` でそのバージョンのディレクトリがわかります。プラグインがアンインストール時に追加の処理をすることもあり、たとえばpyenv-virtualenvは、そのバージョンに結びついた仮想環境も取り除きます。

```
pyenv versions
pyenv uninstall 3.11.9
```

pyenvを完全に取り除くには、READMEによると、シェルの起動ファイルからpyenvの設定行をすべて消し、`rm -rf $(pyenv root)` でルートディレクトリを削除します。これでその下に入っているすべてのPythonが消えます。pyenvをHomebrewで入れたなら、最後に `brew uninstall pyenv` を実行します。何かを削除する前に、まず `pyenv root` を実行し、表示されたパスを読んでください。

## AnacondaまたはMinicondaをアンインストールする

Anacondaの[アンインストールガイド](https://www.anaconda.com/docs/getting-started/anaconda/uninstall)と、対応する[Minicondaのガイド](https://www.anaconda.com/docs/getting-started/miniconda/uninstall)は、macOSで同じ3つの手順を示しています。

1. シェルのプロファイルからcondaの初期化を取り除きます。`conda activate` を実行し、続けて `conda init --reverse --all` を実行します。
2. インストールフォルダを削除します。Anacondaによると、インストールのしかたによってホームフォルダか `/opt` にあり、実際の場所は `conda info --base` で表示されます。よくあるパスは `~/anaconda3`、`~/miniconda3`、`/opt/anaconda3`、`/opt/miniconda3` で、`/opt` のものには `sudo` が必要です。
3. 必要なら、隠し設定ファイルとデータファイルの `~/.condarc`、`~/.conda`、`~/.continuum` も削除します。独自の設定があって再インストールするつもりなら、`.condarc` は残しておくようAnacondaは勧めています。

ガイドは、`rm -rf` は確認なしに削除し、取り消せないと警告しています。Returnを押す前にパスを確かめてください。自分で作った環境はインストールフォルダの中か `~/.conda` の下にあるので、必要なものは先に `conda env export -n <name> > env.yml` で書き出しておきます。

## nodejs.orgから入れたNode.jsをアンインストールする

公式のmacOS向けパッケージは、1つの中に2つのパッケージが入っています。Node自身のインストーラ定義は `org.nodejs.node.pkg` と `org.nodejs.npm.pkg` として登録し、最後の画面では `node` を `/usr/local/bin/node` に、`npm` を `/usr/local/bin/npm` にインストールしたと表示します（[インストーラのソース](https://github.com/nodejs/node/tree/main/tools/macos-installer)）。npmのパッケージは、`/usr/local/lib/node_modules/npm` から `/usr/local/bin` へ `npx` のリンクも張ります。

何かを取り除く前に、パッケージが書き込んだものを一覧にします。

```
pkgutil --pkgs | grep -i nodejs
pkgutil --pkg-info org.nodejs.node.pkg
pkgutil --files org.nodejs.node.pkg | head -50
```

`--pkg-info` はインストール先を表示し、ファイルの一覧はそこからの相対パスです。2つの一覧に出てくるものを取り除きます。中心は `/usr/local/bin/node`、`npm`、`npx` と、`/usr/local/lib/node_modules/npm` フォルダです。フォルダごと消す前に `/usr/local/lib/node_modules` の中を見てください。`npm install -g` で入れたグローバルパッケージもそこにあります。そのあと `sudo pkgutil --forget org.nodejs.node.pkg` を実行し、`org.nodejs.npm.pkg` にも同じことをします。これで消えるのはレシートだけです。

## Homebrew、nvm、fnm、VoltaのNodeをアンインストールする

**Homebrew：** `brew uninstall node`、または `node@20` のようなバージョン付きのformulaを指定します。`brew uses --installed node` で、それに依存しているものがわかります。

**nvm：** `nvm ls` でインストール済みのバージョンを一覧にし、`nvm uninstall <version>` で1つを、そのバージョン向けに入れたグローバルパッケージごと取り除きます。nvm自体を取り除くには、[nvmのREADME](https://github.com/nvm-sh/nvm)によると、`nvm unload` を実行し、ディレクトリ（`$NVM_DIR`、既定では `~/.nvm`）を削除し、シェルの設定から `NVM_DIR` のexportと、`nvm.sh` と `bash_completion` を読み込む行を消します。nvmはHomebrewでのインストールをサポートしていないので、Homebrewから入ったnvmは `brew uninstall nvm` で取り除きます。

**fnm：** バージョンは `fnm list` と `fnm uninstall <version>` で管理します。[fnmのREADME](https://github.com/Schniz/fnm)によると、fnmを取り除くとは、そのフォルダを削除し、`eval "$(fnm env ...)"` の行などシェルの設定にあるfnmへの参照を消すことです。macOSでの既定のデータフォルダは `~/Library/Application Support/fnm` で、古いインストールでは `~/.fnm` でした。Homebrewで入れたfnmなら `brew uninstall fnm` も必要です。

**Volta：** [Voltaのドキュメント](https://docs.volta.sh/advanced/uninstall)のとおり、`~/.volta` ディレクトリと、シェルのプロファイルでVoltaに触れている2行を削除します。

## シェルの起動ファイルからPATHの行を片付ける

インストーラやバージョンマネージャはこれらのファイルに行を足し、その行はソフトウェアがなくなっても残ります。

```
grep -n -E 'python|Python.framework|pyenv|conda|nvm|fnm|volta|node' ~/.zshrc ~/.zprofile ~/.bash_profile ~/.bashrc ~/.profile 2>/dev/null
```

出力には、一致ごとにファイル名と行番号が表示されます。テキストエディタでファイルを編集し、取り除いたものに属する行を削除します。`Python.framework` を指す `export PATH=...` の行、`pyenv init` の行、`conda init --reverse` を実行できなかった場合の `>>> conda initialize >>>` のブロック、nvmとfnmの行、Voltaの2行です。見覚えのない行は、何をするものかわかるまで残しておきます。そのあと新しいターミナルウインドウを開いてください。開いたままのウインドウは古いPATHを持ち続けます。いまのウインドウでは、`hash -r` でzshが覚えているコマンドの場所を消せます。

## 残るキャッシュとデータ

インタプリタをアンインストールしても、パッケージのキャッシュは消えません。

| キャッシュ | 場所 | 消し方 |
| --- | --- | --- |
| pip | macOSの既定では `~/Library/Caches/pip`。使われている場所は `pip cache dir` で表示 | 最後のpipを取り除く前に `pip cache purge` を実行するか、フォルダを削除 |
| npm | `~/.npm`。パッケージは `~/.npm/_cacache` | `npm cache clean --force`、またはNodeを取り除いたあとフォルダを削除 |
| condaのパッケージ | インストールフォルダの中の `pkgs`、または `~/.conda/pkgs` | インストールフォルダと一緒に消える。`~/.conda` は任意 |

[pipのキャッシュに関するドキュメント](https://pip.pypa.io/en/stable/topics/caching/)に、macOSの既定の場所と `pip cache purge` が書かれています。[npmのcacheのドキュメント](https://docs.npmjs.com/cli/v10/commands/npm-cache)は、npmを使っている間はキャッシュが自己修復するので、消す必要はたいていないとしています。Nodeを取り除いたあとなら、そのフォルダはただのデータです。

プロジェクトの仮想環境は別の話です。取り除いたPythonで作った `.venv` は、もう存在しないインタプリタを指していて動かなくなります。プロジェクトの `requirements.txt` やロックファイルから、残したPythonで作り直してください。古いバージョンのNode向けにビルドされたネイティブモジュールを含む `node_modules` も同じです。

## Moleの使いどころ

[Mole](https://mole.fit/ja/)はインタプリタもバージョンマネージャもアンインストールしません。それには上のコマンドを使います。Moleの **クリーン** タブが役に立つのは、そのあとのキャッシュです。pipのmacOSでの既定のフォルダ `~/Library/Caches/pip` は **アプリのキャッシュとログ** の下に専用の行として、`~/.cache/pip`（一部の構成が使うXDGの場所）は **開発ツール** の下にpipキャッシュの行として表示されます。pipは必要なものをまたダウンロードするので、どちらも既定で選択されています。**開発ツール** にはほかに、次のインストールでまたダウンロードされるためチェックが外れた行として表示されるnpmの `_cacache` と `_npx` フォルダ、npm自身のインデックスがもう参照していないキャッシュファイルをまとめた既定で選択済みの **npmキャッシュ内の不要になったデータ** グループ、npmのログ、チェックが外れた行としてのCondaの `~/.conda/pkgs` が並びます。チェックが外れた行は自分で選ぶまでそのままで、確定する前に何かが削除されることはありません。npmについての判断基準は[Moleがnpm cache verifyより少ないnpmキャッシュしか消さない理由](https://mole.fit/ja/blog/mole-developer-cache-gc)で、ほかのツールチェーンは[開発用キャッシュの消し方](https://mole.fit/ja/blog/how-to-clear-dev-caches-mac)で扱っています。

## 確認する

新しいターミナルウインドウを開き、次を実行します。

```
which -a python3 node
python3 --version
node --version
```

取り除いたコピーはもう表示されないはずです。残ったPythonが `/usr/bin/python3` だけなら、それはシステムのコピーで、想定どおりです。Nodeをすべて取り除くつもりだったなら、`node` が「command not found」になるのが正しい結果です。古いバージョンがまだ動くなら、そのPATHの行がシェルのファイルのどれかに残っているか、別のインストーラが2つ目のコピーをほかの場所に置いています。最初の手順に戻ってください。

## よくある質問

### MacでPythonをアンインストールするには？

`which -a python3` を実行してどのコピーがあるかを確認し、入れたときの方法で取り除きます。Homebrewなら `brew uninstall python@3.x`、pyenvなら `pyenv uninstall`、python.orgなら、アプリケーションフォルダ内のフォルダ、フレームワークのバージョン、`/usr/local/bin` のリンクを取り除きます。macOSのものである `/usr/bin/python3` は削除しないでください。

### MacでNode.jsをアンインストールするには？

Homebrewなら `brew uninstall node`、nvmなら `nvm uninstall <version>` を使います。nodejs.orgのインストーラなら、`/usr/local/bin/node`、`npm`、`npx` と `/usr/local/lib/node_modules` の下のnpmフォルダを取り除き、`org.nodejs.node.pkg` と `org.nodejs.npm.pkg` のレシートを消します。

### MacからAnacondaを完全にアンインストールするには？

`conda activate` と `conda init --reverse --all` を実行し、`conda info --base` が示すインストールフォルダ（`~/anaconda3` や `/opt/anaconda3` など）を削除し、必要なら `~/.condarc`、`~/.conda`、`~/.continuum` も削除します。

### macOSに入っているPythonは削除できますか？

いいえ。Pythonのドキュメントによると、`/usr/bin/python3` はAppleが管理し、Apple製やサードパーティ製のソフトウェアが使っているもので、変更も削除もしてはいけません。別のPythonを横に入れ、どちらを動かすかをPATHで選んでください。

### Pythonをアンインストールしたのに、python3がまだ動くのはなぜですか？

別のコピーがまだPATH上にある（多くはmacOSの `/usr/bin/python3`）か、ターミナルがまだ古いPATHを持っているかのどちらかです。新しいウインドウを開いて `which -a python3` を実行し、`~/.zshrc` や `~/.zprofile` に残ったPATHの行を消してください。

---

Canonical HTML page: https://mole.fit/ja/blog/how-to-uninstall-python-node-mac
Blog index for agents: https://mole.fit/ja/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
