Poetry-Python パッケージングおよび依存関係管理ツール#
Python を再学習し、Python を一定期間使用した後、以前の学習方法があまり適切ではないと感じ、Python の再学習シリーズを整理し始めました。
原則#
内容の出典:
- 内容は基本的に公式ドキュメントと自身の実践のまとめから得られます。
- 紹介するものは実際に使いやすく実用的です。
提供するもの:
- 時間を最小限にして最も一般的なものをマスターするための提供
- コストパフォーマンスが高い:学習コストは低く、収穫は多い
Poetry とは#
PYTHON PACKAGING AND DEPENDENCY MANAGEMENT MADE EASY
Python プロジェクトの管理#
- 仮想環境の作成
- requirements.txt の使用
pip install <name> pip freeze -r \ > requirements.txt
- setup.py のパッケージング
Poetry の利点#
- 上記のすべての機能を統合しています
- 依存関係とパッケージングの一元管理
- 使いやすいコマンドラインツール
- シェルコマンドの自動補完機能を統合できます
Poetry プロジェクトの作成#
poetry new pydaily
tree pydaily
Poetry 仮想環境#
poetry shell
Poetry 依存関係の追加#
poetry add requests
poetry add pytest -D
Poetry プロジェクトファイル#
- pyproject.toml:プロジェクトの依存関係とパッケージングの宣言
- poetry.lock:プロジェクトのインストール内容を確定する
- JavaScript のようなもの:
- package.json
- package.lock
Poetry: pyproject.toml#
pyproject.toml ファイルは、実際には次のものです:
- package.json ファイル
- Java の Maven、Gradle ファイル
Poetry 一般的なコマンド#
- poetry add:依存関係の追加
- poetry install:コードのインストール - pip install
- poetry update:すべての依存関係の更新
- poetry run:コマンドの実行
- poetry build:パッケージング
- poetry publish:パッケージの公開
Poetry の利点#
- Python の仮想環境、サードパーティの依存関係、パッケージング、公開までを一元的に統合
- すべてのプロジェクト設定を 1 つのツールで管理
- 他の言語との考え方が一致している
- npm の package.json
- Maven/Gradle:pom.xml/build.gradle
- Go:go.mod
Poetry 依存関係管理 --git リポジトリの管理#
- 依存関係は git リポジトリまたはローカルファイルにすることができます
[tool.poetry.dependencies]
# "next"という名前のブランチの最新リビジョンを取得
requests = { git = "https://github.com/kennethreitz/requests.git", branch = "next" }
Poetry 依存関係管理 --git からのインストール#
poetry add "https://github.com/myorg/mypackage_with_subdirs.git#subdirectory=subdir"
Poetry 依存関係管理 - ローカルファイル#
[tool.poetry.dependencies]
# ディレクトリ
my-package = { path = "../my-package/", develop = false }
# ファイル
my-package = { path = "../my-package/dist/my-package-0.1.0.tar.gz" }