macOS Catalinaの場合
HomebrewでPythonをインストールするために、Xcode Command Line ToolsとHomebrewをインストールして準備する必要がある
Xcode Command Line Toolsのインストール
通常はターミナルから以下を実行でインストールできるはずなのだがうまくいかない(ターミナルの起動方法はこちら)
$ xcode-select --install
ターミナルで’xcode-select –install’と入力
ダイアログが表示されるのでインストールをクリック
ライセンスに同意する
「インストールできません」というエラーが出てうまくいかない
Catalinaではエラーが出て失敗するのでappleのページからパッケージをダウンロードして手動でインストールするとうまく行った
appleのページにアクセスするとApple IDでのログインを要求される
IDとパスワードを入力してログイン
Command Line Tools for Xcode 12が現時点の最新のstable版
クリックすると詳細が表示されるので、ファイルへのリンクをクリック
ダウンロードを「許可」
ダウンロードが始まる
ダウンロードが完了すると表示されるdmgパッケージのアイコンをダブルクリック
「続ける」
「続ける」
「同意する」
「インストール」
Macのログインパスワードを入力して「ソフトウェアをインストール」
インストールが始まる
しばらく待つ
インストールが完了したら「閉じる」
インストールが完了すればdmgパッケージは不要なので「ゴミ箱に入れる」
これでXcode Command Line Toolsのインストールは完了
Homebrewのインストール(インストール済みの場合は動作確認とアップデートのみ実行)
Homebrewのホームページの手順に従って文字列をターミナルにコピペして実行(ターミナルの起動方法はこちら)
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
terminalを起動
Homebrewのホームページのここをクリックすると文字列がクリップボードにコピーされるので
terminalウインドウにフォーカスしてマウス右クリックしてペーストを選択すると
文字列がコマンドラインにペーストされるのでリターンで実行
Macのログインパスワード入力を求められるので入力してリターン
インストール開始
しばらく時間かがかります
まだまだ
完了
一通りのインストールが終わったら以下を実行して動作確認
$ brew doctor
「Your system is ready to brew.」と表示されればOK
Homebrewをアップデート
$ brew update
念のためアップデートを実行。最新なら「Already up-to-date.」と表示される。
Pyenvをインストール
下準備として念のため以下を実行(ターミナルの起動方法はこちら)
$ brew install openssl readline sqlite3 xz zlib
実行するとインストールが始まる
しばらく待つ
完了
brew listで確認するとインストールされていることがわかる
pyenvのインストール
$ brew install pyenv
シェルを見分ける
macOS 10.14.6 Majovie, 10.15.6 Catalinaはzsh、それ以前はbashがデフォルト
以下のようにするとshellの種類がわかる
$ echo $SHELL
zshの場合の結果(ウインドウのタイトルにも表示されている)
zshの場合は~/.zshrcを編集(macOS 10.14.6 Majovie, 10.15.6 Catalinaはzsh)
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zprofile
$ source ~/.zshrc
$ source ~/.zprofile
上記の各行の「$ 」より後ろの文字列を1行ずつコピペして実行すればよい
最後のsourceで.zshrcへの変更を現在のterminalに反映する
うまくいかない場合はterminalを再起動してみる
[2021.7.12追記] pyenv initの仕様が変わってbrew upgrade pyenvするとpythonのパスが正しく設定できなくなってしまう事象に遭遇。以下のようにpyenv initと実行して次のような表示がされる場合には、設定を変更する必要がある。(pyenv 2.0.3)
$ pyenv --version
pyenv 2.0.3
$ pyenv init
# (The below instructions are intended for common
# shell setups. See the README for more guidance
# if they don't apply and/or don't work for you.)
# Add pyenv executable to PATH and
# enable shims by adding the following
# to ~/.profile and ~/.zprofile:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
# Load pyenv into the shell by adding
# the following to ~/.zshrc:
eval "$(pyenv init -)"
# Make sure to restart your entire logon session
# for changes to profile files to take effect.
上記に従うと、次のように処理することになる。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile
$ echo 'eval "$(pyenv init --path)" >> ~/.zprofile
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
$ source ~/.zshrc
$ source ~/.zprofile
bashの場合は~/.bash_profileを編集(macOS 10.13.6 High Sierra以前)
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile $ source ~/.bash_profile
bashの場合も同じように上記の各行の「$ 」より後ろの文字列を1行ずつコピペして実行すればよい
最後のsourceで.bashrcへの変更を現在のterminalに反映する
[2021.7.12追記] pyenv initの仕様が変わってbrew upgrade pyenvするとpythonのパスが正しく設定できなくなってしまう事象に遭遇。以下のようにpyenv initと実行して次のような表示がされる場合には、設定を変更する必要がある。(pyenv 2.0.3)
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile $ source ~/.bash_profile
うまくいかない場合はterminalを再起動してみる
Pythonをインストール
Pytnvで利用可能なpythonのバージョンを確認
$ pyenv install -l
リストにある最新のpythonをインストール(たとえば3.8.5)
$ pyenv install 3.8.5
必要なバージョンがあれば何個でもインストールする インストールできたかどうか確認
$ pyenv versions
インストールしたバージョンをメインで使うように設定
$ pyenv global 3.8.5
確認 $ pyenv versions
表示されたリストで3.8.5の左側に*が付いていればOK
インストールされたが、それだけでは今インストールされたものが実行されるとは限らない
以下のコマンドを実行してpythonがどこにあるとシステムが認識しているかを確認する
$ where python
$ which python
$ python --version
図のように、Macに最初から入っている/usr/bin/pythonしか見つからない場合は、まだ設定が完了していない。
この場合には、次のようにしてpyenvの設定を反映する必要がある。
zshの場合
$ source ~/.zprofile
$ python --version
bashの場合
$ source ~/.bash_profile
venvの設定
python_envディレクトリにpy385envを設定
$ cd ~/
$ mkdir -p python_env
$ cd python_env
$ python --version
$ python -m venv py385env
’python –version’で3.8.5が呼ばれていることを確認してからvenvを実行。
起動用のaliaasを設定
zshの場合
$ echo "alias act='source ~/python_env/py385env/bin/activate'" >> ~/.zshrc
$ echo "alias de='deactivate'" >> ~/.zshrc
$ source ~/.zshrc
$ cat ~/.zshrc
上記の各行の「$ 」より後ろの文字列を1行ずつコピペして実行すればよい
最後のsourceで.zshrcへの変更を現在のterminalに反映する
ここまで設定してうまく実行できない場合はターミナルを再度立ち上げ直す
bashの場合
$ echo "alias act='source ~/python_env/py385env/bin/activate'" >> ~/.bash_profile
$ echo "alias de='deactivate'" >> ~/.bash_profile
$ source ~/.bash_profile
設定の確認
$ brew doctor
$ brew update
$ where python
$ which python
$ python --version
$ pyenv versions
$ where pip
$ which pip
$ cat .zshrc
$ cat .bash_profile
毎回py385envをactivateしてから作業する。<br>
終了する時はdeと入力する。<br>
起動
$ act
$ pip install ...
終了
$ de
メニューバーの右上の虫眼鏡をクリックすると「Spotlight検索」ウインドウが表示されるので「terminal」と入力してリターンキーを押す
terminalが起動される