はじめに
4月になり新しいプロジェクトが始まる季節ですね。
新入社員さんも多くなるこのタイミングで、改めて開発環境をきれいにしたいと思い、今回の記事をポストします。
今回はPoetryというパッケージを利用し、Python環境の構築、特にライブラリ管理を丁寧にしたいというモチベーションで導入した記録です。
対話型インターフェースで環境を構築することができ、初心者でもスムーズに導入できました。
Poetryとは
Poetry は、 Python で依存関係を管理およびパッケージ化するためのツールです。これを使用すると、プロジェクトが依存するライブラリを宣言でき、ライブラリが管理 (インストール/更新) されます。Poetry は、繰り返しインストールを確実にするためのロックファイルを提供し、配布用にプロジェクトを構築できます。
引用:https://python-poetry.org/docs/
すなわち、
- Pythonのパッケージを自動管理してくれるよ!
- 共同開発するときや、違う環境に移行したいときでも、簡単にインストールできるようになるよ!
というものだと認識しています。
1.Poetryを使ったPython環境構築方法
-
Ctrl + Shift + @
を押してターミナルを起動 -
poetry init
で初期設定
対話形式で聞かれるが、基本的には空白SkipでOK。
メイン環境に必要なライブラリ等があればWould you like to define your main dependencies interactively? (yes/no) [yes]
としたあとにライブラリ名を入力しておく。
開発環境に必要なライブラリはその後に同様に聞かれる。
※テスト環境はテスト用ライブラリやドキュメント生成ツールなど、開発中のコードエラー検出やドキュメント整備のために使われるものをインストールしておくとよい。基本的にはスキップしている。Package name [hogehoge_project]: Version [0.1.0]: Description []: Author [None, n to skip]: None License []: Compatible Python versions [^3.11]: Would you like to define your main dependencies interactively? (yes/no) [yes] Package to add or search for (leave blank to skip): pandas Add a package (leave blank to skip): numpy Add a package (leave blank to skip): jupyter Add a package (leave blank to skip): Would you like to define your development dependencies interactively? (yes/no) [yes] no
-
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
を実行。
PowerShellの実行権限を変更することで次のコマンドがエラーにならない。 -
poetry shell
を実行。
環境構築が完了すると.venvフォルダが作られる。 -
poetry lock
を実行。
poetry.lockファイルが生成される。
poetry.lockとは、プロジェクトの依存関係のバージョンを固定して一貫性を保つために使われるファイル。プロジェクトが異なる環境間でも一貫した動作をするために役立つ。 -
poetry show
を実行。
以下のようにインストール済のライブラリ一覧が表示される。PS > poetry show numpy 1.26.4 Fundamental package for array computing in Python pandas 2.2.2 Powerful data structures for data analysis, time series, and s... python-dateutil 2.9.0.post0 Extensions to the standard Python datetime module pytz 2024.1 World timezone definitions, modern and historical six 1.16.0 Python 2 and 3 compatibility utilities tzdata 2024.1 Provider of IANA time zone data
-
他に必要なパッケージがあるかを確認。
足りなければpoetry add *****
で追加する。※例:poetry add boto3
2. 作成した環境を使ってVSCode上で実行する方法(Jupyter Notebookを使用)
-
VSCodeで
Ctrl+Shift+P
を押してコマンドパレットを開く -
Ctrl+Shift+P
を押してコマンドパレット→newjupyternotebook
で新しいJupyter Notebookを開く -
プログラムを実行。実行時に再度インタープリター(カーネル)を選択させられる可能性もあるが、上記手順で再度.venv環境を選択する。
さいごに
Pythonで開発するときに、毎回pip install
をしていましたが、Poetryを導入してからは一気に環境を整えることができることは大きなメリットです。
Dockerコンテナを使った環境構築も経験したことがありますが、Pythonでの開発かつパッケージに特化して管理したいという小規模開発であればPoetryを使わない手はないでしょう。
ぜひみなさんもPortryを導入してみてはいかがでしょうか?