PATHを通すために環境変数の設定を理解する (Mac OS X)

グローバルのpython3を使っていた

これを修正したい

理由:VSCodeでPythonを使う場合、公式サイトでbrewでのインストールが勧められている

vscodeプラグインをインストールしたが、グローバルのpythonからはデバッグを利用できないようだ

python3 --version
=>Python 3.8.2

//グローバルのpythonを使っている これは良くない
% which python3
=>/usr/bin/python3

brew でpython3をインストールする

brew install python3

//情報をみる
brew info python3

=>
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python@3.9/3.9.1 (9,232 files, 135.2MB) *
  Built from source on 2020-12-17 at 09:47:25

//python3.9がインストールされている
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/python@3.9.rb
License: Python-2.0
==> Dependencies
Build: pkg-config ✔
Required: gdbm ✔, openssl@1.1 ✔, readline ✔, sqlite ✔, xz ✔
==> Caveats
Python has been installed as

//インストール場所
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python@3.9/libexec/bin

You can install Python packages with
  pip3 install <package>
They will install into the site-package directory
  /usr/local/lib/python3.9/site-packages

このPATHにPython3がインストールされた

f:id:happy_teeth_ago:20210219103335p:plain

.zshrcにPATHを追加

export PATH="/usr/local/bin/python3:$PATH"

追加したあとは

source .zshrc

で設定を反映しておくこと

左のPATHと右の$PATHの違いについて:どうして2つも必要なのだろうか?

左辺のPATHは、exportを利用してPATHを設定しただけ。

exportは、割り当ての左側にある環境変数を割り当ての右側にある値に設定します。 
このような環境変数は、それを設定するプロセスと、同じ環境で生成されたすべてのサブプロセス、
つまりこの場合はソースを生成するBashインスタンスに表示されます。

つまり右辺の$PATHには、すべてのPATHが含まれている変数だと考えると良い

vim /etc/paths でパスを確認

これらが上位から優先順位をもっている

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

パスを確認するには echo $PATHとする

グローバル変数なので、たくさん出てきます。

% echo $PATH

.nvm/versions/node/v12.16.1/bin:
/usr/local/opt/openssl/bin:
/.nodebrew/current/bin:
/usr/local/bin:/usr/bin:
/bin:
/usr/sbin:
/sbin:
/Library/Apple/usr/bin:
/.nvm/versions/node/v12.16.1/bin:
/usr/local/Cellar/fcrackzip:
/usr/local/opt/openssl/bin:
.nodebrew/current/bin

.zshrcに記載したので今度は、brewでインストールした、python3を使っている

% python3 --version
Python 3.9.1

% which python3
/usr/local/bin/python3

めでたし、めでたし

おじいさんとおばあさんは、仲良く長生きをして、Pythonでプログラミングを楽しんだそうじゃ、、、