#環境
M1 mac book pro
macOS Big Sur 11.4
hyper 3.0.2
hombrew 3.1.12
pyenv 2.0.1
#状況
フロントエンド中心に勉強していたのですが、WEBエンジニアに興味を持ちサーバーサイドの勉強をはじめました。インターンシップに応募するにあたりnode.jsやGo言語を勉強しようと思ったのですがコーディングテストではCかPythonがいいということを小耳に挟んだためコーディングテストのためだけにPythonの開発環境を整えることにしました。
Homebrewは元から入っておりpyenvもインストールしたのですが肝心のPythonがインストールできず、という状況です。
#エラー文
pyenv install 3.9.5
とコマンド打ったところ
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
と言うエラー文が出てきました。
#解決手順
###1
エラー文の下にここを参照してと書いてあるので見ます。
Please consult to the Wiki page to fix the problem.https://github.com/pyenv/pyenv/wiki/Common-build-problems
###2
「The Python readline」についての記述が見つかりません。なので、一番上の「トラブルシューティングを行う前にPythonのバイナリ依存関係とビルドツールをインストールしてください。」という指示に従いましょう。
↓このリンクに飛びます
https://github.com/pyenv/pyenv/wiki#suggested-build-environment
###3
Xcode Command Line ToolsとHomebrewをインストールしてから↓を打てって書いてあります。
brew install openssl readline sqlite3 xz zlib
Homebrewの確認はpyenvのインストールにも使ってるので今回は飛ばします。
Xcode command Line Toolsは入れてるか怪しかったので確認します。
xcode-select --install
と打つと「すでにインストールされてますよ」とでてきました。(そもそもHomebrewを入れるのにコマンドラインツールが必要だったみたいです)
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
###4
HomebrewとXcode Command Line Toolsがインストールされてることが確認できたら先程のページに戻り下記コマンドを打つ段階から始めます。
brew install openssl readline sqlite3 xz zlib
コマンドを打つと
Warning: openssl@1.1 1.1.1k is already installed and up-to-date.
インストールはされてるっぽいですが下にエラー文が出てきました。
Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)! To rerun under ARM use:arch -arm64 brew install ...
どうやらARMの環境下ではarch -arm64
を先頭につけてコマンドを打たなきゃいけないようです。
なのでarch -arm64 brew install openssl readline sqlite3 xz zlib
と打ちましょう。
###5
pyenv install 3.9.5
と打っても同じエラー文が出てきてしまったので全てにarch -arm64
をつけました。
arch -arm64 brew install pyenv
arch -arm64 pyenv install 3.9.5
これでインストールできると思います。
#確認
pyenv global 3.9.5
と打ってから
python versions
と打つと* 3.9.5 (~
と出てきました。”が”
Python versions
と打ってもPython 2.7.16
とmacに元から入ってるバージョンが出てきてしまいます......
とは言え、vscodeでPythonファイルを「ターミナルで実行」するとopt/homebrew/opt/python@3.9/bin/python3.9
と出てきているのでPython 3.9.*が使えてるみたいです。