utamaro’s blog

誰かの役に立つ情報を発信するブログ

2021年版 pythonの開発環境を整える

概要

pythonの開発環境を整えて、スクリプトを実行できるのを目標にします。

pythonの開発環境ですが、2021年7月現在で私が使用している構成を基にご紹介します。

私の場合は、pyenvで任意のバージョンをインストールし、venvを使ってローカル環境を作成しています。

以下その環境を導入するまでの目次です。

  • 作業環境について
  • pyenv をインストールする
  • pyenv の使い方
    • pythonをインストールする
    • 使用するバージョンを設定する
    • 仮想環境を使う
  • 注意すること

作業環境について

  • ProductName: macOS
  • ProductVersion: 11.2.3
  • BuildVersion: 20D91
  • Homebrew 3.2.0
  • zsh 5.8 (x86_64-apple-darwin20.0)

pyenv をインストールする

(公式のドキュメント)https://github.com/pyenv/pyenv通り、brewを使ってインストールします。

brew install pyenv

git を使った方法もありますが、管理が若干面倒なのでおすすめしません。 ただし、最新のバージョンを使用することができるので、バージョンを切り替えたりしたい方にはおすすめです。 一般的にwebの開発をしている方にとっては不要だと思います。

pyenv をインストールできたら、~/.zshrc に以下の記述を追加します。

######################################################
# python settings
######################################################
# pyenv

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

(見やすくするためにpython用の設定とわかるようにしています)

pyenv の使い方

pyenvのヘルプを確認する場合は、以下のコマンドを実行すると確認できます。

pyenv --help

pythonをインストールする

python3.9.4をインストールする

pyenv install 3.9.4

python2環境用に2.7.18をインストールする

pyenv install 2.7.18

使用するバージョンを設定する

pyenvのグローバルにデフォルトで3.9.4を使用するようにし、python2用に2.7.18を使うようにする

pyenv global 3.9.4 2.7.18

カレントディレクトリで使用するバージョンを指定する

pyenv local 3.9.4

仮想環境を使う

pythonコマンドを利用して、仮想環境を用意する

python -m venv venv

上記コマンドを実行すると、venvというディレクトリが作成されます。

仮想環境を使用する

source ./venv/bin/activate

すると、ターミナルが以下の様になります。

(venv) ➜  ~/sample ✗

この状態でpipコマンドを利用してライブラリをインストールできます。 ためしに、requestsをインストールするコマンドを例として出します。

pip install requests

仮想環境の利用をやめる

deactivate

deactivateと打つと仮想環境の利用をやめることができます。

注意すること

venvを利用した開発の場合、作成されるバージョンはグローバルのpythonのバージョンと一致します。

今回の場合だと3.9.4で仮想環境が作成されます。

例えば、以下のコマンドを実行すると、バージョンが3.9.1の環境を用意できます。

pyenv install 3.9.1
pyenv local 3.9.1
python -m venv venv_391
source ./venv_391/bin/activate
python --version

--versionの結果

Python 3.9.1

これを利用すると、1つのプロジェクトに複数のバージョンの環境を用意できます。

virtualenvを使った場合、特定のバージョンを利用して名前をつけて環境を用意する必要がありました。 これがローカルファイル(venv等)で用意できるので、環境の切り替えが簡単になります。