6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【図解】pyenv + venv + poetry による開発環境構築 (Ubuntu 21.10)

Last updated at Posted at 2021-12-11

pythonの仮想環境で開発を行うために必要なツールのインストール手順の紹介です。

Python開発ツール概要

  1. pyenv :: 複数バージョンの実行環境を構築
  2. venv :: 仮想環境を構築
  3. poetry :: 仮想環境のパッケージを管理
Python仮想開発環境関連図 - どのコマンドがどの環境で動作しているのか頭に入っていると、余計な混乱しなくてすみます。 - 開発にはpipは使いません

Python仮想環境

pyenv

複数バージョンの実行環境を構築 - 複数バージョンのpythonを切り替えて使えることができる。 - 各ユーザが使用するpythonのバージョンを切り替える。 - バージョンの切替はOSが使用しているpythonのバージョンに影響はない。 - venvを使って、開発環境毎にバージョンを切り替えられる。

1. python ビルドツールインストール

Pythonをソースコードからコンパイル - pyenvはpythonをソースコードをダウンロードして、コンパイルして、開発者のhomeディレクトリにインストールする。 - そのためビルドツールをあらかじめインストールする必要がある。

各OSでの必要パッケージは Suggested build environment を参照

【参考】ubuntu-21.10
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

2. pyenv インストール

~/.pyenvに実行環境をダウンロード - pyenvは[Shim](https://en.wikipedia.org/wiki/Shim_(computing))と呼ばれる方式で複数バージョンのpythonを切り替える。 - shim版python (`~/.pyenv/bin/python`) が本物のpythonの切替を行う方式。 - 複数バージョンのpythonは`~/.pyenv`配下のディレクトリにインストールされる。 - `~/.pyenv`には、python のインタプリタと標準ライブラリのみインストールし、それ以外のライブラリについては、 後述のvenvによって各開発環境下にインストールする(ようにすべき)。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

3. pyenv 最適化

実行時間の短縮 - pythonのshim方式によるruntime時の負担を最適化する。 - 下記コマンドは失敗してもpyenvは動作するのでエラーは無視してよい。

下記コマンドはエラーは無視できる

cd ~/.pyenv && src/configure && make -C src

4. pyenv ユーザ環境設定

ユーザのシェル環境に追加設定 - pyenv用のPATHや各種環境変数を各ユーザが設定する必要がある。 - bashの場合、スクリプト用の設定と、ログインシェル用の設定を分けている。 - 設定完了後は、logoutとloginで設定変更を反映させる。

各OSでの設定方法は Basic GitHub Checkout を参照

【参考】環境変数追加設定(.profile、.bash_profileなど)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
# shim版python 用 PATH の設定
eval "$(pyenv init --path)"

毎回起動されるので設定は最小限がLinuxの流儀

【参考】実行時環境追加設定(.bashrcなど)
eval "$(${HOME}/.pyenv/bin/pyenv init -)"

venv

仮想環境の構築 - python (3.4以降) 標準の仮想環境。 - 開発環境毎のpythonのruntime環境の切替、追加ライブラリの管理を行う。 - 標準ではあるが、runtime環境ではないのでOSによっては追加でインストールする必要がある。
ubuntu-21.10
sudo apt-get update; sudo apt install python3.9-venv

poetry

仮想環境のパッケージを管理 - 選択肢はたくさんあるが、現時点のbest practiseの模様。 - poetryは`~/.local/bin`にインストールされる。 - Ubunts 21.10 ではデフォルトでPATHが通っているのでインストールすれば則実行可。 - pipでインストールすると、実行環境に依存してしてしまう。 - 独自のpython実行環境をもつので、仮想環境に影響を受けない。

poetry は pip でインストールしない

各OSでのインストール方法は Poetry Installationを参照

ubuntu-21.10
curl -sSL https://install.python-poetry.org | python3 -

~/.local/bin がPATHに含まれていない場合に追加

【参考】環境変数追加設定(.profile、.bash_profileなど)
export PATH="$HOME/.local/bin:$PATH"
6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?