はじめに
こんにちは〜!MacでPythonのレガシー環境を構築したい皆さん、pyenvでPython2系をインストールしようとしてハマってませんか? 特にApple Silicon(M系)搭載のMacを使っていると、Python 2.7のインストールでエラーが出て「え、どうしたらいいの…?」ってなることありますよね💦
この記事では、そんなお悩みを解決するために、pyenvでPython2系をM1 Macにインストールするための最新の対処方法をご紹介します!
💡 この記事でわかること
- M系 MacでPython2系(2.7系)をインストールする方法
-
.zshrc
への正しい設定方法
ではさっそく見ていきましょう〜!
🧠 Rosetta設定を忘れずに!
Apple Silicon(M系)のMacでは、一部のx86向けのビルドツールやパッケージがそのままだと動かないことがあります。
Python2系のインストールでエラーになる場合、Rosetta(ロゼッタ)を使ったターミナルの起動が有効です!
以下の手順で、Rosettaを使うように設定してみましょう👇
- Finderで「アプリケーション > ユーティリティ > ターミナル」を開く
- ターミナル.app を右クリックして「情報を見る」
- 「Rosettaを使用して開く」にチェックを入れる
これで、ターミナルがIntelモードで起動し、Python2系もスムーズにビルドできるようになる可能性が高いです🙌
✅ pyenvのインストール後にやるべき設定
- まず、Homebrewで
pyenv
をインストールします。
brew install pyenv
- 次にターミナルで
pyenv
が自動で初期化されるように設定します。
~/.zshrc に統一するのがシンプルでおすすめ** です🎉
echo '# pyenv' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
- そのあと、設定をすぐに反映させるにはこちら👇
exec ~/.zshrc
type python
# => python is $HOME/.pyenv/shims/python
これで、ターミナル起動時に自動的にpyenvが有効になります!
🐍 Python2.7のインストール!
準備が整ったら、いよいよPython2系をインストールしてみましょう〜!
pyenv install 2.7.18
pyenv global 2.7.18
うまくいけば、以下のコマンドでバージョンが確認できるはず!
python --version
# => Python 2.7.18
レガシーなスクリプトを動かすためにどうしても必要なときは、こうやって環境を分けてインストールするのが安全ですね✨
🌀 Python 2.7 と Python 3 を共存させたい場合
Rosettaターミナルを使えば、Python 2系とPython 3系を共存させることも可能です!以下に手順をまとめておきます👇
1. Rosettaターミナルの準備
Finder → アプリケーション → ターミナル.app を複製(例:Rosetta Terminal)
右クリック → 「情報を見る」→「Rosettaを使用して開く」にチェック✅
2. Rosetta環境でHomebrewをインストール(x86_64アーキテクチャ)
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3. Rosetta環境でpyenvと依存ライブラリをインストール
arch -x86_64 /usr/local/bin/brew install pyenv readline zlib xz
4. .zshrc
の設定(すでに設定済みならスキップOK)
echo '# pyenv' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
exec ~/.zshrc
5. Python 2.7.18 と 3.10.2 のインストール
pyenv install 2.7.18
pyenv install 3.10.2
pyenv global 2.7.18 3.10.2
6. 動作確認!
python --version # → Python 2.7.18
python3 --version # → Python 3.10.2
python -c "import ssl; print(ssl.OPENSSL_VERSION)" # → OpenSSL 1.1.x
このように、Rosetta環境でpyenvを使うことで、Apple Siliconでも難しかったPython 2系のsslまわりの問題が解決できます✨
最後に
この記事が役に立ったら、ぜひ「LGTM」してくれると嬉しいです! 💖
では、また次回の記事でお会いしましょう👋