Python3の環境構築【macOS】

start

はじめまして、データサイエンティストのますみです!

様々な環境構築の方法がありますが、オススメの方法(pyenvおよびpyenv-virtualenvを用いた方法)を紹介します。

1. brewのインストール

まずは、brewと呼ばれる「macOS専用のパッケージマネージャー」をインストールします。以下のコマンドをterminalで実行してみましょう。
$はコマンドを打てる状態を表す記号なため、入力は行わないでください。環境によっては%が表示されると思います。)

brew.sh
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

2. pyenvのインストール

brewが無事にインストールされたら、pyenvを次にインストールします。pyenvとは、「pythonのバージョン管理ツール」です。以下のコマンドを実行しましょう。

pyenv.sh
$ brew install pyenv

もしもインストールが完了したら、以下のようにpyenvのバージョンを表示してみましょう。2行目のように何かしらのバージョンのレスポンスが返ってきたら、しっかりとインストールされていることが確認できます。

pyenv.sh
$ pyenv -v
pyenv 1.2.18 // Response

最後に、pyenvの設定が反映されるようにしていきましょう。
先頭の文字が$の人は、以下のコマンドを入力しましょう。

pyenv_init.sh
$ pyenv init
# Load pyenv automatically by appending
# the following to ~/.bash_profile:

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

zshellの人(先頭の文字が$ではなくて、%の人)は、おそらく~/.bash_profileではなくて、~/.zshrcへappend(追加)するように出力されると思います。そのため、zshellの方は以下のように入力してみましょう。

pyenv_init_zsh.sh
% pyenv init
# Load pyenv automatically by appending
# the following to ~/.zshrc:

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

3. python3のインストール

次に、pyenvを用いてpython3(今回はv3.6.5)をインストールしていきます。以下のコマンドを実行していきましょう。

python.sh
$ pyenv install 3.6.5

インストールされたかを確認するために、以下のコマンドを実行します。このコマンドは、現在利用できるpythonのバージョンを表示するコマンドです。2,3行目のように表示されたら、v3.6.5がインストールされていることが確認できます。また、*は現在globalで設定されているバージョン(デフォルトのバージョンのようなもの)を表しています。

python.sh
$ pyenv versions
* system (set by /Users/masumi_morishige/.pyenv/version)
  3.6.5

もしも日頃からv3.6.5を使用したい場合は、以下のように指定することができます。もう一度versionsで確認すると、*の位置が変わっていることが確認できます。

python.sh
$ pyenv global 3.6.5
$ pyenv versions
  system
* 3.6.5 (set by /Users/masumi_morishige/.pyenv/version)

ここまで設定が完了すれば、python3の実行は可能です。

試しに、python3で”Hello World”と出力してみましょう。
まずは、以下のコマンドを実行しましょう。このコマンドは、print('Hello World')というコードをsample.pyというファイルに書き込み、保存します。

python.sh
$ echo "print('Hello World')" > sample.py

先ほどglobalでv3.6.5を選択しましたが、念のためpythonのバージョンがv3.6.5になっているかを確認しましょう。

python.sh
$ python -V         
Python 3.6.5

v3.6.5になっていることが確認できたら、以下のようにsample.pyを実行しましょう。

python.sh
$ python sample.py 
Hello World

しっかりとHello Worldと出力されたでしょうか?ベースとなる環境構築は完了しましたが、本格的にpythonに触れていく場合は、次の章以降も行うことを推奨します。

4. pyenv-virtualenvのインストール

pyenv-virtualenvとは、複数の仮想環境を構築するためのツールです。例えば、v3.6.5のバージョンで「データ解析用の環境」と、「機械学習用の環境」を構築したいとします。こういった時に以下のような利点があります。

  • それぞれの環境にインストールするパッケージが少しずつ異なるため、環境を分けることで余計なパッケージが含まれない。
  • パッケージ間の依存関係を整理しやすい。
  • 配布する時にパッケージが整理されているため、ご利益がある。

pyenvだけでもpythonを扱うことはできるのですが、研究や仕事で本格的にpythonを用いる予定がある場合は、pyenv-virtualenvの利用を強く推奨します。

それでは、以下のコマンドからインストールを行っていきましょう。

virtualenv.sh
$ brew install pyenv-virtualenv

次に、例として、MLという名前の仮想環境(今回はv3.6.5)を作成していきましょう。

virtualenv.sh
$ pyenv virtualenv 3.6.5 ML
Requirement already satisfied: setuptools in /Users/masumi_morishige/.pyenv/versions/3.6.5/envs/ML/lib/python3.6/site-packages
Requirement already satisfied: pip in /Users/masumi_morishige/.pyenv/versions/3.6.5/envs/ML/lib/python3.6/site-packages

バージョンを確認してみましょう。しっかりとMLという仮想環境が構築できていることを確認できます。

virtualenv.sh
$ pyenv versions
  system (set by /Users/masumi_morishige/.pyenv/version)
* 3.6.5
  3.6.5/envs/ML
  ML

5. プロジェクトごとのpyenvの設定

最後に、「プロジェクトごとにpyenvを設定する方法」を紹介します。
先ほど、globalコマンドを用いて、デフォルトのバージョンを設定しましたが、プロジェクトごとに環境を変えたい場合は、localコマンドを用いて設定していきます。

現在の環境は、globalで指定したv3.6.5ですが、現在いるsample.pyのプロジェクトでは、MLの環境にしたいとします。そのため以下のようなコマンドを実行しましょう。すると、環境がMLにスイッチしたことが確認できます。

local.sh
$ pyenv local ML
$ pyenv versions  
  system
  3.6.5
  3.6.5/envs/ML
* ML (set by /Users/masumi_morishige/Documents/Local_Sandbox/sample_python/.python-version)

これは、コマンドを実行したディレクトリのみに反映されていて、.python-versionという隠しファイルで管理されます。現在いるディレクトのファイルを表示してみましょう。隠しファイルなため、lsでは表示されません。そのため、-aオプションを追加します。

local.sh
$ ls -a
.python-version  sample.py

すると、.python-versionが作成されていることがわかります。中身も確認してみましょう。

local.sh
$ cat .python-version 
ML

中身は、シンプルなテキストファイルのようですね。

これで、pyenv-virtualenvの解説も以上になります。

最後に

いかがだったでしょうか?
この記事を通して、少しでもあなたの困りごとが解決したら嬉しいです^^

おまけ(お知らせ)

エンジニアの仲間(データサイエンティストも含む)を増やしたいため、公式LINEを始めました🎉

「一緒に仕事をしてくれる方」「友だちとして仲良くしてくれる方」は、友だち追加をしていただけますと嬉しいです!
(仲良くなった人たちを集めて、「ボードゲーム会」や「ハッカソン」や「もくもく会」もやりたいなと考えています😆)

とはいえ、みなさんにもメリットがないと申し訳ないので、特典を用意しました!

友だち追加後に、アンケートに回答してくれた方へ「エンジニア図鑑(職種20選)」のPDFをお送りします◎

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA