Python3に変更できずにはまった話
状況
Homebrewでpythonの3系をインストールしたが、ターミナル上でpythonコマンドを実行してもなぜか2系が起動されてしまう。
$ python Python 2.7.16 (default, Oct 16 2019, 00:34:56)
実行パス、環境変数(PATH)、Python3のインストール先を確認したところ、次のとおりだった。
$ which python /usr/bin/python $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin $ ll /usr/local/bin/python* lrwxr-xr-x 1 user admin 34 12 21 18:32 /usr/local/bin/python3 -> ../Cellar/python/3.7.5/bin/python3
理由
最後のコマンドを実行してもしやと思い、別のコマンドを実行したところpython3が起動された。 そう単に"python3"としてコマンドが登録されていた(正確には"python3"として別名が登録されていた)
$ python3 Python 3.7.5 (default, Nov 1 2019, 02:16:32)
pyenvのインストール
pythonコマンドで実行されるPythonのバージョンを簡単に切り替えできるようにしたいので、pyenvをインストールすることに。
(参考:pyenvにより、pythonのバージョンを変更する - Qiita)
$ brew install pyenv ・・・ Installed Python-3.7.5 to /Users/xxxxx/.pyenv/versions/3.7.5 $ pyenv versions * system (set by /Users/xxxxx/.pyenv/version) 3.7.5 $ pyenv global 3.7.5 $ python --version Python 2.7.16 $ eval "$(pyenv init -)" $ python --version Python 3.7.5 $ which python /Users/xxxxx/.pyenv/shims/python
.bash_profileには下記を追加する。これを記載しておかないと、ターミナルを再度起動してpythonコマンドを実行した場合に2系が起動してしまう。
<<.bash_profile>> # pyenv eval "$(pyenv init -)"
また、上記の対応後、pipも使えるようになった。
$ pip -V pip 19.3.1 from /Users/xxxxx/.pyenv/versions/3.7.5/lib/python3.7/site-packages/pip (python 3.7) $ pip --version