はじめに
PipenvとPoetryの一番の大きな違いはPipenvはライブラリプロジェクトでは使えないが、Poetryは使えるところではと思い、Poetryを勉強しました。
mainプロジェクトとlibraryプロジェクトの2つのプロジェクトをGithub経由でインストールしてlibraryプロジェクトの関数をmainプロジェクトから実行するサンプルです。
ソースは mainプロジェクトと libraryプロジェクト にあげてあります。
ディレクトリ構成
poetry-lib
├── pyproject.toml
└── poetry_lib
└── aaa2.py
poetry-main
├── pyproject.toml
└── main.py
ファイル
poetry-lib
pyproject.toml
[tool.poetry]
name = "poetry-lib"
version = "0.1.0"
description = ""
authors = ["va034600"]
packages = [
{ include = "poetry_lib" },
]
[tool.poetry.dependencies]
python = "^3.6"
python-dateutil = "^2.8.1"
[tool.poetry.dev-dependencies]
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
aaa2.py
from dateutil.relativedelta import *
from datetime import *
def bbb2():
today = datetime.now()
return today + relativedelta(months=+6)
poetry-main
pyproject.toml
[tool.poetry]
name = "poetry-main"
version = "0.1.0"
description = ""
authors = ["va034600"]
[tool.poetry.dependencies]
python = "^3.6"
poetry-lib = { git = "ssh://git@github.com/va034600/poetry-lib.git" }
[tool.poetry.dev-dependencies]
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
main.py
from poetry_lib import aaa2
print(aaa2.bbb2())
実行
setup
$ cd poetry-main
$ poetry install
$ python main.py
2021-03-13 08:00:14.266597
終わりに
Pytharmを使えば、mainプロジェクトにlibraryプロジェクトをアタッチすればデバッグもlibraryを修正した反映の確認もできます。
便利です