# Usage Poetry ## プロジェクトのフォルダを作成 ```bash $ cd xxxx $ mkdir XProject ``` ## プロジェクトにpoetryを導入 導入するコマンドとして,`new`と`init`がある. けど,`new`は勝手にフォルダとファイルの構成を作成するため,`init`でいいと思う. ```bash $ cd XProject $ poetry init ``` 実行すると,対話型で以下の項目が訊かれるので,順番に答える [DEFAULT値]で良ければ,eNTERを押すだけ ※`pACKAGE NAME`と同じ名前の依存関係(パッケージ)はインストールできなくなる ```bash > Package name [sphinx]: > Version [0.1.0]: > Description []: > Author [xxxUser , 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 new`や`poetry init`を実行すると,pyproject.tomlが生成される. これはPEP-518で定義されたPython標準のフォーマット. 依存関係の情報などを持つ. 従来は`setup.py`や`requirement.txt`を用意していたが,`pyproject.toml`に統合された感じ ## 依存関係の追加 `pip`コマンドでパッケージのインストールは,`add`コマンドで可能. 追加したパッケージは`pyproject.toml`に追加される ```bash # poetry add $ poetry add numpy ``` ## 仮想環境のセットアップ `install`コマンドを実行すると,`./.venv`が生成される `.venv`ディレクトリ配下に仮想環境のファイルが生成され,`pyproject.toml`に書かれた依存関係も同時にインストールされる. ```bash $ poetry install ``` ## 仮想環境でコマンドを実行 `run`コマンドを使用して,Pythonの実行などを行う ```bash # poetry run $ poetry run python main.py $ poetry run mypy main.py ``` `shell` コマンドでも 実行可能.`poetry run` を省略できる ```bash $ poetry shell (py-3.12) $ python main.py (py-3.12) $ mypy main.py ``` ## 仮想環境の詳細確認 ```bash $ 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