Shunya Ueta

Poetry からsetup.py を自動生成する

現状の Poetry では、pyproject.toml を基にした setup.py の直接的な自動生成をサポートしていない。

Support generation of poetry manged setup.py file #761

え?なんで setup.py が必要なんですか? poetry build で生成される sourcewheels で事足りるんじゃないですかというツッコミがあると思います。

PyPIJflog などでホストせずに、GitHub のリポジトリでパッケージを管理したり、特定のサブディレクトリをパッケージとして扱う際には、未だ setup.py での依存関係の記述が必要です。

Poetry による実現方法

poetry build コマンドと Makefile を組み合わせることで、pyproject.toml に対応した setup.py の自動生成ができるのでそれを採用します。 コマンドはGitHub のissues でのコメントを参考にしました。 1

# package name
PACKAGE = lib

.PHONY: build-package
build-package: ## Generate setup.py by poetry command for shared package 
    poetry build
    # source ./dist で解凍
    tar zxvf dist/$(PACKAGE).tar.gz -C ./dist
    # setup.py を手元にコピー
    cp dist/$(PACKAGE)/setup.py setup.py
    # poetry build で生成されたファイルをすべて削除
    rm -rf dist
---

関連しているかもしれない記事


📮 📧 🐏: 記事への感想のおたよりをおまちしてます。 お気軽にお送りください。 メールアドレス入力があればメールで返信させていただきます。 もちろんお返事を希望せずに単なる感想だけでも大歓迎です。

このサイトの更新情報をRSSで配信しています。 お好きなフィードリーダーで購読してみてください。

このウェブサイトの運営や著者の活動を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、著者の活動のモチベーションに繋がります✨
Amazonでほしいものリストも公開しているので、こちらからもサポートしていただけると励みになります。

#python