LoginSignup
19
12

More than 1 year has passed since last update.

pyenvでPython2系と3系を切り替える【macOS】

Posted at

やりたいこと

BigQueryをローカルから操作する必要がありました。
BigQueryを操作するbqコマンド、CloudStorageを操作するgsutilコマンド、GCEやGKE等を操作するgcloudコマンドをローカルで使うにはGoogle Cloud SDKが必要です。
CloudSDKを使用するにはPythonが必要で、サポート・推奨されているバージョンは以下の通りです。

公式ドキュメントより

サポートされているバージョンは Python 3(3.5~3.8、3.7 を推奨)と Python 2(2.7.9 以降)です。

私が使用するMacにはデフォルトで入っているPython2系しかありませんので、推奨されている Python3.7を使えるようにしようと思います。
今回はPythonの環境構築のみで、別の記事にて、そのあとのCloudSDKの環境構築についてもまとめていきます。

環境

  • MacOS 10.15 Catalina
  • Homebrew 3.3.7

Python3系環境構築

今回はpyenvを使用し、Python2系と3系(今回は3.7)を共存させることにします。複数のpythonバージョンの共存については、こちらの記事がわかりやすかったです。

現在のPythonのバージョン確認

$ python -V
Python 2.7.16

現在はデフォルトの2系が入っています。

pyenvのインストール

homebrewでpyenvをインストールすることができます。homebrewのインストールはこちらの記事などを参考にしてください。

$ brew install pyenv

image.png

インストールが完了したら、pyenvのバージョンを確認してみます。

$ pyenv -v
pyenv 2.2.3

pyenvのパスを通します。

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
$ source ~/.zshrc

pyenvでPython3.7をインストール

現在pyenvで切り替え可能なPythonのバージョンを確認します。

$ pyenv versions
 * system (set by /Users/user/.pyenv/version)

現在はまだデフォルトのバージョンのみですね。

pyenvでインストールできるバージョンの一覧は以下のコマンドで確認できます。

$ pyenv install --list

今回はPython3.7.8をインストールしてみましょう。

$ pyenv install 3.7.8

image.png

私の環境ではインストールに4分ほどかかりました。

pyenvで切り替え可能なPythonのバージョンを確認してみましょう。

$ pyenv versions
* system (set by /Users/user/.pyenv/version)
  3.7.8

3.7.8が使えるようになりました。
ですが、現在適用されているのはPython 2.7.16のままですね。

$ python -V
Python 2.7.16

インストールしたPython3.7.8に切り替えてみましょう。

$ pyenv global 3.7.8
$ pyenv versions
system
* 3.7.8 (set by /Users/user/.pyenv/version)

pyenv上では3.7.8に切り替わっていますね。

ローカルのPythonバージョンを確認してみます。

$ python -V 
Python 2.7.16

切り替わっていない。。。
調べていると、どうやら.zshrcの記述が不足していることが原因のようでした。
次の記述を.zshrcに追加します。 

$ echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
$ source ~/.zshrc

再度ローカルのPythonバージョンを調べると…

$ python -V
$ Python 3.7.8

無事切り替わりました!

コマンドまとめ

# pyenvで特定のバージョンのPythonをインストールする
$ pyenv install 3.7.8

# 使用するPythonのバージョンを切り替える(インストールしたものの中から選択可能)
$ pyenv global 3.7.8

# pyenvでインストール済みのバージョン、現在適用中のバージョンを確認する
$ pyenv versions
  system
* 3.7.8 (set by /Users/user/.pyenv/version)

参考にさせていただいた記事

19
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
12