Pythonの開発環境を構築します。
概要は以下の通りです。
- Pythonのバージョン管理をpyenvで実施
- pipでインストールするコマンドの管理をpipxで実施
- Pythonのパッケージ管理をpoetryで実施
Pythonのバージョン管理 #
デフォルトでインストールされているPythonをそのまま利用したくない理由は以下の通りです。
- デフォルトのPythonのバージョンはOSやディストリビューションによって異なる(そもそもインストールされていない可能性もある)。
- デフォルトのPythonはシステムで利用されている可能性があるため、できるだけ汚したくない。
- プロジェクトごとに任意のバージョンのPythonを利用したい。
- 個人利用ならば、常に最新バージョンのPythonを使用したい。
そこで、pyenvを利用します。pyenvを使うと、好きなバージョンのPythonのインストールと切替が容易になり、Pythonの仮想環境を自由に作成できます。
pyenvのインストール #
公式のインストール方法に従ってインストールを進めます。 まず、以下のコマンドでpyenvをクローンします。 MacOSの場合は、homebrewでもpyenvをインストールできますが、Linuxと環境を揃えたいので、MacOSでもGitHubからクローンします。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
次に、shellにpyenvへのPATHを通します(zshを利用する場合)。
-
shellがbashの場合
Terminal echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
-
shellがzshの場合
Terminal echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
以下のコマンドでshell起動時に pyenv init
が実行されるようにします。
-
shellがbashの場合
Terminal echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\nfi' >> ~/.bash_profile
-
shellがzshの場合
Terminal echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\nfi' >> ~/.zshrc
最後に以下のコマンドでshellを再起動して、インストールが完了です。
exec "$SHELL"
pyenvによるPythonのインストールと指定 #
pyenvを利用してPythonをインストールします。
以下のコマンドでインストール可能なPythonのバージョンを確認できます。
pyenv install --list
以下のコマンドでPython 3.8.4をインストールします。
pyenv install 3.8.4
pyenv global
コマンドでインストールしたPythonをデフォルトで使用するようにします。
pyenv global 3.8.4
python --version
pipでインストールするコマンドの管理 #
Pythonには、pipでインストールできるコマンドが多数ありますが、依存関係の管理が煩雑になる場合があります。
そこで、pipxを利用してアプリケーション用の仮想環境を作成し、自由に管理できるようにします。
pipxのインストール #
公式のインストール方法に従い、以下のコマンドでpipxをインストールします。
pip install pipx
pipx ensurepath
pipxでのコマンドのインストール #
以下のコマンドで指定したコマンドをインストールできます。
pipx install <コマンド名>
例として、以下のコマンドをインストールします。
pipx install jupyterlab
pipx install flake8
pipx install isort
pipx install mlflow
Pythonのパッケージ管理 #
Pythonでは requirements.txt
を使用してpipでパッケージ管理が可能ですが、依存関係の管理が大変です。
そこで、パッケージ管理ツールをとして、Poetryを使用します。
Poetryのインストール #
公式のインストール方法に従い、以下のコマンドでPoetryをインストールします。
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
デフォルトでは .venv
がホームディレクトリ内に作成されますが、プロジェクトディレクトリ内に作成するように設定します。
poetry config virtualenvs.in-project true
Python開発環境の作成 #
まず、プロジェクト用ディレクトリを作成し、移動します。
mkdir project1
cd project1
Python 3.7.8をインストールし、プロジェクト用ディレクトリで有効化します。
pyenv install 3.7.8
pyenv local 3.7.8
Poetryを初期化し、パッケージを追加します。
poetry init
poetry add <パッケージ名>