crab

crab

The 'crabs in a barrel' mentality only exists if we view ourselves as a crab. The truth is on the map.

[重学Python] Poetry-Python パッケージングおよび依存関係管理ツール

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 ファイルは、実際には次のものです:

  1. package.json ファイル
  2. 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" }

Poetry チュートリアルビデオ#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。