はじめに

僕なりの macOS で Python 環境を作るためのお話です。

pyenv と pyenv-virtualenv

ここでは Python の仮想環境を pyenvpyenv-virtualenv で作成する方法を紹介します。

pyenv

Homebrew を用いたインストール

macOS を使用している場合は Homebrew を用いてインストールすることができます。Homebrew をインストールしていない場合はリンク先のインストールコマンドを実行しましょう。

pyenv のインストールコマンドは以下の通りです。

$ brew install pyenv

Git を用いたインストール

pyenv の GitHub リポジトリをクローンしてくることでもインストールすることができます。

コマンドは以下の通りです。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

パスの追加と初期化

インストールした pyenv を使用できるように、パスを通し、シェル実行時に初期化をしてやる必要があります。

今回は最新の macOS 標準の Z Shell( zsh ) の方法を紹介します。
Bash を使用している方は適宜 .zshrc.bash_profile などに読み替えてください。

実行するコマンドは以下の通りです。

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc

Python バージョンの追加

仮想環境のためのバージョンを追加するにはバージョンを指定し、以下のコマンドで追加できます。

$ pyenv install x.x.x

この際、インストール可能なバージョン一覧は pyenv install -l で確認することができます。

また、アプリケーションをビルドする場合などはフレームワークとしてインストールする必要があります。コマンドは以下のとおりです。

$ env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install x.x.x

pyenv-virtualenv

Homebrew を用いたインストール

pyenv と同じく Homebrew でインストールできます。インストールコマンドは以下の通りです。

$ brew install pyenv-virtualenv

Git を用いたインストール

こちらも pyenv と同じく Git でもインストールできます。コマンドは以下の通りです。

$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

初期化

pyenv 同様に、初期化のコマンドを追加します。

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

仮想環境の追加

仮想環境を追加するには以下のコマンドを実行します。

$ pyenv virtualenv x.x.x <name>

例えば、Python 3.8.2 で test-3.8 という名前の環境を作りたい場合は以下のようになります。

$ pyenv virtualenv 3.8.2 test-3.8

仮想環境の指定

グローバル

特別に、環境が指定されていない、グローバルな環境で使うバージョンを指定するには pyenv global を使用します。例えば先ほど作成した test-3.8 を使用する場合は以下のようになります。

$ pyenv global test-3.8

ローカル

カレントディレクトリで、特定の仮想環境を指定する場合には pyenv local を使用します。例えば先ほど作成した test-3.8 を使用する場合は以下のようになります。

$ pyenv local test-3.8

このコマンドを実行すると、ディレクトリに .python-version というファイルが追加され、そこに、指定した仮想環境が書き込まれます。

また、pyenv activate <name> を使用することで、仮想環境を一時的に起動することもできます。

仮想環境の確認

現在作成されている仮想環境の一覧を取得するには pyenv versions が使用できます。また、一覧ではなく、現在の環境で適用されているものを知りたい場合には pyenv version で確認できます。

おわりに

ここで紹介した他に必要そうなコマンドが出てきたら、追記していきます。