Usage Poetry#

プロジェクトのフォルダを作成#

$ cd xxxx
$ mkdir XProject

プロジェクトにpoetryを導入#

導入するコマンドとして,newinitがある.
けど,newは勝手にフォルダとファイルの構成を作成するため,initでいいと思う.

$ cd XProject
$ poetry init

実行すると,対話型で以下の項目が訊かれるので,順番に答える
[DEFAULT値]で良ければ,eNTERを押すだけ
pACKAGE NAMEと同じ名前の依存関係(パッケージ)はインストールできなくなる

> Package name [sphinx]:
> Version [0.1.0]:
> Description []:
> Author [xxxUser <user@example.co.jp>, n to skip]:
> License []:
> Compatible Python versions [^3.10]: ^3.11
> Would you like to define your main dependencies interactively? (yes/no) [yes] no
> Would you like to define your development dependencies interactively? (yes/no) [yes] no
> Do you confirm generation? (yes/no) [yes] 

最後にmain環境と開発環境の依存関係の登録をするか訊かれる.
あとからaddコマンドを使って追加できるので,今回は無視した.

pyoroject.toml#

poetry newpoetry initを実行すると,pyproject.tomlが生成される.
これはPEP-518で定義されたPython標準のフォーマット.
依存関係の情報などを持つ.
従来はsetup.pyrequirement.txtを用意していたが,pyproject.tomlに統合された感じ

依存関係の追加#

pipコマンドでパッケージのインストールは,addコマンドで可能.
追加したパッケージはpyproject.tomlに追加される

# poetry add <package name>
$ poetry add numpy

仮想環境のセットアップ#

installコマンドを実行すると,./.venvが生成される
.venvディレクトリ配下に仮想環境のファイルが生成され,pyproject.tomlに書かれた依存関係も同時にインストールされる.

$ poetry install

仮想環境でコマンドを実行#

runコマンドを使用して,Pythonの実行などを行う

# poetry run  <command>
$ poetry run python main.py
$ poetry run mypy main.py

shell コマンドでも 実行可能.poetry run を省略できる

$ poetry shell
(py-3.12) $ python main.py
(py-3.12) $ mypy main.py

仮想環境の詳細確認#

$ poetry env info

Reference#

  1. https://qiita.com/canonrock16/items/f77ee2a2df9be5b8cc37

  2. https://qiita.com/shun198/items/97483a227f288ad58112#%E6%97%A2%E5%AD%98%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%ABpoetry%E3%82%92%E5%B0%8E%E5%85%A5

  3. https://qiita.com/ksato9700/items/b893cf1db83605898d8a#%E6%97%A2%E3%81%AB%E3%81%82%E3%82%8B%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92poetry%E7%AE%A1%E7%90%86%E4%B8%8B%E3%81%AB%E7%BD%AE%E3%81%8F%E5%A0%B4%E5%90%88