pyenvを使ったPyhtonのローカルプログラミング環境構築【Mac catalina】のイメージ画像

pyenvを使ったPyhtonのプログラミング環境構築【Mac catalina編】

  • 公開日:2018/10/06
  • 更新日:2020/04/24
  • 投稿者:n bit

Mac catalinaのローカル環境にpyenvを利用してPythonのプログラミング環境を構築する方法を解説。pyenvを利用することでPythonのバージョンを複数の環境で切り替え、利用するパッケージごとに構築環境を切り分けと言った要件に対して容易に対応できます。

  • Python
  • Mac
  • プログラミング
  • プログラミング学習

この記事は約 分で読めます。(文字)

当ページの前半部分ではpyenvとはどのようなものか、pyenvの利用のメリット、pyenvにできないことなどを解説。

そのような基礎知識は不要でとにかくpyenvを使ったPythonのローカルプログラミング環境の構築方法のみ知りたいといった方はこのページの後半「pyenvを使ってPyhtonのローカル環境構築」からご覧ください。

pyenvとは

pyenvとは、仮想環境上で用途別にPythonの複数のバージョンの環境を構築し切り替えて利用するための管理ツール。

  • 1台のパソコンのローカル環境に複数のPythonの環境を構築し切り替えて利用できる

pyenvの利用メリット

pyenvを使って複数の仮想環境構築できることによるメリットは主に以下の3つです。

  • 用途ごとに開発環境を用意することができる
  • 開発環境を容易に扱える
  • anaconda、pypy、jython、stacklessなどの仮想環境も構築出来る

用途ごとに開発環境を用意することができる

利用するメリットとしてまず第一に挙げられるのは『用途ごとに開発環境を用意することができる』ことでしょう。

例えば以下のような環境の分け方があります。

  • Pythonを使ったウェブアプリケーションの開発環境(Django等)
  • Pythonを使った分析環境(anaconda、言語処理、機械学習環境等)
  • Pythonやパッケージの新しいバージョンのテスト環境

上記はあくまで一例ですのでご自分の利用用途によって分けてください。

それぞれ利用の用途によって必要となるPythonのバージョンや関連パッケージが変わります。環境を分けておくことで環境ごとに必要なパッケージを厳選することができますので不用なエラーを避けることに繋がるのです。

また新しいバージョンのPythonやパッケージが出たときに簡単にテスト環境を用意して試すことができるのはとても使い勝手が良いでしょう。

開発環境を容易に扱える

もう一つのメリットは開発環境を容易に扱えること。

システム内に全ての環境を構築すると環境が壊れたときに全てやり直す必要があります。しかし、pyenvを使って利用環境ごとに分けておくことで1つの環境壊れてもその環境のみを一度削除してやり直すだけで再構築することができます。

環境構築に費やす時間は生産性がなく無駄でしかありません。出来る限り簡易に開発環境を扱える事は重要なメリットと言えるでしょう。

anaconda、pypy、jython、stacklessなどの仮想環境も構築出来る

Pythonのみではなくanaconda、pypy、jython、stacklessなどの仮想環境を構築して簡単に切り替えることができるのもメリット。

一言でPythonといっても様々な用途に利用することができる言語ですのでPython単体のみ以外の環境も容易に構築できることが重要です。

pyenvにできないこと

いろいろ簡易に構築することができるpyenvですが、できないこともあります。

その中でも1番気をつけておくべきものは同じPythonのバージョンで違う仮想環境を構築することができないと言うことでしょう。例えばPython 3.8.2で2つの仮想環境を作るといったケースです。

pyenv-virtualenvで解決

今回の環境構築には利用していませんがpyenvのプラグインで「pyenv-virtualenv」があります。こちらを利用することで同じPythonのバージョンで違う仮想環境構築することができます。

同じPythonのバージョンで違う仮想環境を構築する用途がなかったのと、構築環境が複雑になるのを私はあまり好みませんので今回は利用していません。

pyenvを使ってPyhtonのローカル環境構築

ここからはpyenvを使ったPythonのローカル環境構築方法の解説。pyenvのインストールに始まりPyhtonのインストール、動作確認まで行います。

pyenvのインストール

まずHomebrewでpyenvをインストール。まだHomebrewをインストールされていない方は下記のページを参考にしてHomebrewをインストールしておいてください。

pyenvをHomebrewでインストールするには下記のコマンドを入力。

$ brew install pyenv

pyenvにパスを通しておきます。追加しておくことで『~/.pyenv/shims』へのパスが通りpyenvコマンドや補完機能が使えるようになります。

$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

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

.bash_profileはユーザディレクトリの直下にあります。

pyenv profile場所

.bash_profile内を確認しましたら下記の画像のように先程のコマンドが反映されていることを確認できます。

pyenv profile内容

  • 参考用に記述していますが.bash_profile内を必ず確認する必要はありません。

pyenv環境にインストール済みのバージョン一覧確認

pyenv環境にインストール済みのPythonバージョンを確認。現在はpyenvをインストールしたばかりですのでシステムの表示のみです。

$ pyenv versions

* system (set by /Users/○○○/.pyenv/version)

これでpyenvの仮想環境にPythonをインストールする準備が整いましたので次は実際にPythonをインストールしていきましょう。

pyenv環境にインストール可能なバージョンの一覧確認

pyenv環境内にインストールすることができるPythonのバージョンを一覧で確認します。

$ pyenv install --list




3.8.2


標準のPythonに関してはバージョン番号のみ表示されます。

pyenv環境にPython 3.8.2をインストール

表示された一覧のリストの中から必要なPythonの環境を選択してインストール。インストールするPythonのバージョンはご自分の開発環境に合わせて選択してください。

今回は1番新しいPython 3.8.2をインストール。

$ pyenv install 3.8.2

以下のように表示されていれば正しくPythonがインストールできています。

Installed Python-3.8.2 to /Users/○○○/.pyenv/versions/3.8.2

pyenv環境にインストール済みのバージョン一覧確認

先ほどインストールしたPython 3.8.2がpyenv環境の中にあるか確認しておきましょう。

$ pyenv versions

* system (set by /Users/○○○/.pyenv/version)
3.8.2

systemの下に3.8.2の項目が増えていることが確認できます。

Note

systemの横に「*」印が付いていますが、これは現在pyenv環境内でsystemが選択されているという表示です。

このままではPython 3.8.2を利用できませんのでpyenv環境で利用するPythonを3.8.2に切り替えましょう。

pyenv環境内で利用するPythonの切り替え

pyenv環境内で利用するPythonをsystemから先ほどインストールしたPython 3.8.2に切り替えていきます。

切り替えるにはglobalコマンドを入力してください。

$ pyenv global 3.8.2

正しく切り替わっているかを確認しておきましょう。

$ pyenv versions

system
* 3.8.2 (set by /Users/○○○/.pyenv/version)

Note

3.8.2の横に「*」印が付いていますのでpyenv環境内で利用するPythonが3.8.2に切り替わってています。

pyenv環境内にインストールしたPythonの動作テスト

pyenv環境内にインストールしたPythonが正しく動作するかをテストしておきましょう。

ターミナルにpythonと入力してPythonを起動。

$ python

Pythonが起動しましたらprint関数を使ってプログラミング入門でお馴染みの「Hello World」を表示させてみましょう。

Python 3.8.2 (default, Apr 23 2020, 18:10:24)

[Clang 11.0.3 (clang-1103.0.32.59)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> print('Hello World')
Hello World

表示が確認できましたらexit()を使ってPythonを終了します。

>>> exit()

もしも起動したPythonのバージョンがPython 3.8.2以外のバージョンになっていた場合はシステム側のPythonが直接呼び出されている可能性があります。その場合現在呼び出されているPythonのパスを確認してみましょう。

$ which python

pyenv内のPythonが正常に呼び出されている場合は以下のようなパス。

/Users/○○○/.pyenv/shims/python

.pyenv/shims からpyenv内のPythonが呼び出されていると確認できました。

以下のようなパスになっている場合はシステム側のPythonが直接呼び出されています。

/usr/bin/python

この場合は再度pyenv内にパスを通すあたりの設定を見直しましょう。打ち間違えや実行忘れ等がないか確認してください。

$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

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

これでpyenvを使ったPyhtonのローカル環境構築手順は全て終了です。後は自分の利用環境に合わせて必要なパッケージ等をpipでインストールしていきましょう。

pyenvのその他の基本操作

今回の新規環境構築作業では利用しませんでしたが今後pyenv環境を使っていく中でよく利用することになるコマンドをいくつか紹介しておきます。

pyenv環境にインストール可能なパッケージをフィルタリングして一覧表示

pyenv環境にインストール可能なリストを一覧表示すると数が多すぎますので必要なものだけを文字列でフィルタリングして表示させる方法です。

文字列『anaconda』が含まれるパッケージをフィルタリングする場合

$ pyenv install -l | grep anaconda

pyenv環境内のPythonをアンインストール

pyenv環境内にインストールしているPythonはuninstallコマンドでアンインストールできます。不要になった環境はアンインストールしておきましょう。

$ pyenv uninstall 3.8.2

今日のdot

pyenvを利用することで1台のパソコンのローカル環境にも様々な用途別にPythonの仮想環境を構築することができます。

例えば以下のようなPythonの仮想環境です。

  • Pythonを使ったウェブアプリケーションの開発環境(Django等)
  • Pythonを使った分析環境(anaconda、言語処理、機械学習環境等)
  • Pythonやパッケージの新しいバージョンのテスト環境

当ページのpyenv環境構築方法を利用して自分の用途に合ったPython仮想環境を構築してください。