【Python】poetryでsetup.pyを生成する

プログラミング

この記事はpoetryを用いた際の、setup.pyを生成する方法の備忘録です。

まずは poetry でプロジェクトを作成します。

$ poetry new app --src

pyproject.toml の例は以下とします。

[tool.poetry]
name = "app"
version = "0.1.0"
description = ""
authors = ["sampleuser <sampleuser@gmail.com>"]

[tool.poetry.dependencies]
python = "^3.9"
rich = "^13.1.0"
numpy = "^1.24.1"

[tool.poetry.dev-dependencies]
pytest = "^5.2"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

このとき、次のシェルスクリプトをpyproject.toml と同じ階層に配置して実行すると、setup.py を生成することができます。

#!/bin/bash

poetry build
tar zxvf ./dist/*.tar.gz -C ./dist  
cp ./dist/*/setup.py ./setup.py
rm -rf ./dist/*/

今回の例で生成される setup.py は次の通りです。

# -*- coding: utf-8 -*-
from setuptools import setup

packages = \
['app']

package_data = \
{'': ['*']}

install_requires = \
['numpy>=1.24.1,<2.0.0', 'rich>=13.1.0,<14.0.0']

setup_kwargs = {
    'name': 'app',
    'version': '0.1.0',
    'description': '',
    'long_description': None,
    'author': 'sampleuser',
    'author_email': 'sampleuser@gmail.com',
    'maintainer': None,
    'maintainer_email': None,
    'url': None,
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'python_requires': '>=3.9,<4.0',
}


setup(**setup_kwargs)
タイトルとURLをコピーしました