Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pyproject.toml won't find project name with setuptools python -m build format

What is the correct format for supplying a name to a Python package in a pyproject.toml? Here's the pyproject.toml file:

[project]
name = "foobar"
version = "0.0.1"

[build-system]
requires = ["setuptools>=40.8.0", "wheel"]
build-backend = "setuptools.build_meta"

A build called using python -m build results in the following error.

running check
warning: check: missing required meta-data: name, url
warning: check: missing meta-data: either (author and author_email) or (maintainer and maintainer_email) should be supplied

Based on this reddit post question I had the same issue.

like image 686
polka Avatar asked Feb 12 '26 21:02

polka


1 Answers

Update

At the time the question was asked, setuptools did not have support for writing its configuration in a pyproject.toml file (PEP 621). So it was not possible to answer the question.

Now and since its version 61.0.0, setuptools has support for PEP 621:

  • https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html

Original answer

It seems that you are trying to write a PEP 621-style pyproject.toml with the setuptools build back-end.

But, as of now, setuptools does not have support for PEP 621 yet. The work is ongoing:

  • https://discuss.python.org/t/help-testing-experimental-features-in-setuptools/13821
  • https://github.com/pypa/setuptools/tree/experimental/support-pyproject
  • https://github.com/pypa/setuptools/search?q=621&type=issues

Until PEP 621 support arrives in setuptools, one can:

  • Use setup.cfg
    • https://setuptools.pypa.io/en/latest/userguide/declarative_config.html
  • Switch to a PEP 621-compatible build back-end instead of setuptools:
    • pdm
    • flit
    • trampolim
    • enscons
    • whey
    • probably more...
like image 182
sinoroc Avatar answered Feb 15 '26 10:02

sinoroc