🗂

M1 MacのPython,Node.js環境設定(Homebrew、pyenv、nvm)

2023/02/05に公開

本記事について

Homebrewをインストールする

Homebrewをインストールしていない場合は、下記コマンドにてインストールする。

ターミナル
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Homebrew公式ページ

https://brew.sh/

brewコマンドでpyenvとpyenv-virtualenvをインストールしようとするとエラーが出る

下記コマンドにてpyenvとpyenv-virtualenvをインストールしようとする。

brew install pyenv pyenv-virtualenv

エラーメッセージとして「zsh: command not found: brew」が出る。

エラー解決方法

Homebrewを実行するための、環境設定ができていなかったようです。

.zprofileに環境設定を記述

実行ディレクトリ(カレントディレクトリ)は/Users/Username/です。
下記のコマンドを順番に実行するだけで、.zprofileが書き換わるみたいです。
(.zprofileを開いて編集する必要はありません)

コマンド1にて/Users/Username/.zprofileを指定

コマンド1
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/Username/.zprofile

コマンド2にて.zprofileに何を記載するか指定

コマンド2
eval "$(/opt/homebrew/bin/brew shellenv)"

コマンド3にて.zprofileの中身が書き換わっているか確認してみましょう。

コマンド3
cat .zprofile 

.zprofileが下記のように書き換わっていればOKです。

eval "$(/opt/homebrew/bin/brew shellenv)"

時間がある時に下記を参考にしてHomebrewの使い方を学んでおくと良いでしょう。
https://original-game.com/it_dictionary/homebrew/
https://original-game.com/homebrew/

.zshrcを開いて編集してパスを設定して保存する

ターミナル
open /Users/Username/.zshrc

.zshrcファイルに下記のようにパスを設定して保存する

.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

.zshrcファイルに設定した内容を反映させる

ターミナル
source .zshrc

pyenvにインストールできるpythonのバージョン一覧を表示します

ターミナル
pyenv install --list

pyenvにpythonのバージョンを指定してインストールします

ターミナル
pyenv install 3.11.0

pyenvにインストールしたバージョンを確認します

ターミナル
pyenv versions
* system (set by /Users/owner/.pyenv/version)
  3.11.0

バージョン3.11.0がインストールされているのを確認できました。

pythonのバージョンを切り替えます

ターミナル
pyenv global 3.11.0

バージョンが切り替わったか確認します。

ターミナル
pyenv versions
  system
* 3.11.0 (set by /Users/owner/.pyenv/version)

※がついているのが現在使用しているバージョンです。
上記の場合、3.11.0の環境が使用されています。

Python3.11.0のエイリアスを作成する

ターミナル
pyenv virtualenv 3.11.0 schemaenv

pyenvにschemaenvが作成できたかを確認します

ターミナル
pyenv versions
  system
* 3.11.0 (set by /Users/owner/.pyenv/version)
  3.11.0/envs/schemaenv
  schemaenv

schemaenvのエイリアスが作成されているのが確認できます。

作成したschemaenvエイリアスに切り替えます

ターミナル
pyenv activate schemaenv

VSCODEにpathを通します。

VSCodeを開き画面左下の歯車マークを押します。設定を押します。

コマンドパレットにpython: selectと入力して、Python: Default interpreter Pathに.pyenvを保存してあるディレクトリをフルパスで記載する。

VSCodeを一度閉じ、再度開きます。Command + Shift + P を押してコマンドパレットを開きます。Pytho:インタープリターを選択を選びます。

作成したschemaenvを選択します。

これで、作成したpyenvやエイリアスをVSCODEに設定できるようになる。

brewコマンドでnvmをインストールする

ターミナル
 brew install nvm

.nvmフォルダを作成します。

ターミナル
mkdir ~/.nvm  

.nvmフォルダを作成できたことを確認します

ターミナル
open ~/.nvm 

.zshrcを開いて編集してパスを設定して保存する

ターミナル
open /Users/Username/.zshrc

.zshrcファイルに下記のようにパスを設定して保存する

.zshrc
export NVM_DIR="$HOME/.nvm"
  [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

.zshrcファイルに設定した内容を反映させる

ターミナル
source .zshrc

nvmが正常にインストールされていることを確認します

ターミナル
nvm -v
0.39.3

上記の場合、nvmのバージョンは0.39.3がインストールされています。

nvmにインストールできるバージョン一覧を確認します

ターミナル
nvm ls-remote

nvmにnode.jsのバージョンを指定してインストールします

ターミナル
nvm install v18.8.0

nvmにnode.jsの安定している最新のバージョンをインストールします

ターミナル
nvm install stable

現在、選択しているnode.jsのバージョンを確認します

ターミナル
nvm current
v19.6.0

上記の場合、Node.jsのバージョンはv19.6.0が選択されています。

nvmにインストールしているnode.jsの一覧を確認します

ターミナル
nvm ls
        v18.8.0
->      v19.6.0
default -> v19.6.0
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v19.6.0) (default)
stable -> 19.6 (-> v19.6.0) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.2 (-> N/A)
lts/gallium -> v16.19.0 (-> N/A)
lts/hydrogen -> v18.14.0 (-> N/A)

インストールしたバージョンがv19.6.0とv18.8.0なのでその2つが表示されています。
また、->マークで表示されているのが、現在選択されているバージョンです。
上記の場合、Node.jsのv19.6.0が選択されています。

現在選択しているnode.jsを他のバージョンに切り替えます

ターミナル
nvm use v18.8.0
Now using node v18.8.0 (npm v8.18.0)

現在選択しているnode.jsのバージョンを確認します

ターミナル
nvm current
v18.8.0

上記の場合、Node.jsのバージョンはv19.6.0が選択されています。
Node.jsのバージョンはv19.6.0  → v18.8.0に切り替わっています。

まとめ

Discussion