Homebrewのpythonを3.9から切り替え(切り戻し)たい

Homebrewの自動アップデート設定のせいでpythonが3.7系から3.9系へとアップデートされてしまいました。
3.9系だと動作しないモジュール等もあり、3.7系へ切り戻したい!!と思い、いろいろ試行錯誤するも苦戦してしまったため、なんとかの解決策をみなさんへ共有するべく記事にしました。

この記事はHomebrewでインストールしたpythonをpyenvを使わずにバージョンを切り替え(切り戻し)たい方向けの記事です。pyenvの使い方には触れていませんのであしからず...。

目次

brew switchが使えない!?

pyenvではなくHomebrewで直接入れたpythonならbrew switch コマンドを使えば切り戻すことができる。という記事をいくつも見てきた。

さっそく試してみたのだが、何度やってもダメだ。

Error: Unknown command: switch

brew switch python3.7.5をやるとError: Unknown command: switchと怒られる。
そもそもbrewのswitchコマンドなんてないじゃん...。

そうそう。Homebrewのアップデートによってswitchコマンドが廃止になったそうだ..。
(まだHomebrewをアップデートしていない方はbrew switchコマンドが使えるので試して見る価値はありそう。)

では、brew switchを使わない他の方法を試すしかないですね。

やっぱ、pyenvを使うのがいいのかもしれない...と思ってきた。
ですが僕はpyenvを使うことに少し抵抗がありまして..Homebrew配下に直接pythonを入れたいんだという強い信念がある。僕と考えが一緒の方は続きをぜひ、御覧ください。

Homebrewのpythonをアンインストールする

よし、ではpython一式をアンインストールし、再度インストールし直そう。

brew uninstall python3
:
#以下のコマンドを打ちなさいと怒られるので以下を打つ
brew uninstall --ignore-dependencies python3

これでpython3は消えたかな。(環境によっては依存関係のあるモジュール等も消す必要がある場合があります。
その場合はメッセージで確認できますので、メッセージに従って削除してください。)

brew listpython@3系がないことを確認

そして再度、バージョン指定をしてpythonを入れ直す。

brew install python3.7

これで解決!!と思ったが、あれ!?

python3.7系を指定してインストールしたはずがpython3.9系にアップデートされてインストールされている。
Homebrewの自動アップデート機能にまたもややられた。こんなんじゃ、バージョン指定してインストールできないじゃないか。

Homebrewの自動更新機能の無効

ということで、Homebrewの自動更新機能を無効化してみる。

export HOMEBREW_NO_AUTO_UPDATE=1を環境変数としてターミナルに打ち込み設定してあげると自動更新が無効になる。有効にしたい場合はunset HOMEBREW_NO_AUTO_UPDATEを打てばいい。

これは一時的なものなので永続的に設定したい場合は、.zshrc.bashrcexport HOMEBREW_NO_AUTO_UPDATE=1を追記しておこう。

さてさて、これで準備は整った。再びpython3をアンインストールし、再度バージョン指定をしてインストールしてあげる。
すると、うまく指定したバージョンでHomebrew配下にpython3系がインストールすることができた。

PATHもろもろの設定が漏れているかも!?

上記の手順で設定をおこないpythonを使っていくと、意図しない挙動になることがあった。
なぜかpython3.7系を使っている(つもり)なのだがpython3.9のPATHを見に行ったりしている。
PATHがめちゃくちゃな状態になっているようだ。

一旦PATHもすべて書き換えてインストールするべきだ。
ということで、またまた再びpython3をアンインストールし、python3.7系をクリーンな状態で入れ直す。

インストール時に

brew reinstall python3.7

を行えばPATHもろもろの再設定をしてくれる。
これでとりあえずは解決した。いやー長かった。単純にpyenvを使ったほうが早かったですね。

Homebrewのpython3の切り替え(切り戻し)まとめ

Homebrewのbrew switchが使えない方は以下の手順でpython3系のバージョン切り戻しができます。
(brew switchが使える方はそちらを使ったほうが簡単で早いです)

  1. python3系のアンインストール
    brew uninstall --ignore-dependencies python3
  2. Homebrewの自動更新機能の停止
    export HOMEBREW_NO_AUTO_UPDATE=1
  3. PATHの再設定を兼ねたインストール
    brew reinstall python3.x

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント

コメントする

目次
閉じる