はじめに
現在、Pythonの自己学習兼アプリ開発をしているのでアウトプットとして実施したこと記載していきます。
このQiitaシリーズでは、アプリ開発のプロセスを通して学んだ技術や実装の工夫を、実践ベースで共有してます。
第1回目の今回は、学習するための開発環境を整えるにあたって、
-
venv
とpoetry
の違いと使い分け - Python仮想環境の作り方
- 実際に私が選んだ構成
について整理します。
本記事の対象者
この投稿は、以下のような方を想定しています。
- Pythonの勉強を始めたいけれど、仮想環境構築でつまずいている方
- .venbとpoetryのどちらを使うか悩んでいる方
- poetry を導入してみたいが、基本的な使い方を学びたい
開発環境
- OS Windows 11
- Python 3.13.2
- Poetry 2.1.3
- VScode 1.101.2
venv とは?どんなときに使う?
.venv とは Python プロジェクト専用の仮想環境を用意するツールです。
この中にインストールしたライブラリが入り、他のプロジェクトと分けて管理できます。
環境を分けることで、バージョンの違いや依存関係のトラブルを防げます。
たとえば:
- Aプロジェクトでは「FastAPI v0.95」を使いたい
- Bプロジェクトでは「FastAPI v0.100」を使いたい
このとき、システム全体にインストールしてしまうと、バージョンの競合が起こるためバージョン管理をするために導入します。
※.venvはPython 3.3以降に標準搭載
Python公式サイト
特徴とメリット
- シンプルに環境を切りたいとき
- Python標準ライブラリで導入不要
- 学習・検証用途に向いている
Poetryや他の仮想環境とは違い、Python標準ライブラリのためinstall等の対応が不要になります。また、使い方もシンプルなので直感的な構築がしやすくローカル環境での開発をするときや軽い動作確認などをする際には手間も省くことができます。個人的には、俊敏性の高いツールに感じました。
.venvの導入方法と実際の使い方
構築方法は下記の記事にまとめて記載しております。
実際に構築中のエラー等も書かれているので順序通りに実施いただければ構築は可能かと思います。
【補足】.venvでPython仮想環境を作る手順
poetry とは?なぜ選ばれるのか?
Poetryとは、Python の依存関係管理とパッケージ管理を一元的に行えるツールです。(.venv)に使用していたpip、venv、requirements.txtなど煩雑さを解消し、「環境構築からパッケージ公開までを一貫して管理できる」のが特徴です。
特徴とメリット
- 依存関係を
pyproject.toml
で明示管理 -
poetry install
だけで環境再現できる
インストールと初期化方法
構築方法は下記の記事にまとめて記載しております。
実際に構築中のエラー等も書かれているので順序通りに実施いただければ構築は可能かと思います。
【補足】Poetryで依存管理を始める
venv と poetry の違い・使い分けまとめ
項目 | venv | poetry |
---|---|---|
手軽さ | ◎ | △ |
依存管理 | × | ◎ |
チーム開発向き | △ | ◎ |
再現性 | △ | ◎ |
なぜ私は poetry を選んだか
私は、今回(.venv)を構築後にPoetryへ変更しました。理由としては、アプリ開発を行うためと今後のチーム化が発生することを想定し選択しました。
実際に、アプリのプロトタイプをAWSのEC2へデプロイを行った際にPythonのバージョン差分にもPoetryによる気づくことができたので導入する価値はあったかなとおもいます。
ただ、学習の用途だけであればPoetryにする必要はないため.venvを選択してもよいですし、移行も勉強になるので慣れてきてからPoetryを導入するのも良いかなと感じました。
まとめ
今回は、Pythonの環境構築をする上でなぜPoetryを選択したのかを記載しました。
私自身は今回、「依存関係が複雑になりそう」「後々チームで共有するかも」という想定から、poetryを採用していますがそれぞれの目的に合わせて選択いただければ良いかなと思います。
また、.venvやPoetry以外にも多くの仮想環境やライブラリ依存管理のツールは存在しているのでそちらも調べつつ学習用途であれば気軽に挑戦してもよいかなと思っています。
参考文献
Python公式サイト
【Python仮想環境】venvと比べてpoetryの優れたところを挙げてみる
Python venv メリットと使い方