Skip to content

Python Packaging

Examples

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

[project]
name = "your_project_name"
version = "0.1.0"
description = "A short description of your project"
authors = [{name = "Your Name", email = "[email protected]"}]
license = {file="LICENSE"}
requires-python = ">=3.10"

[project.dependencies]
numpy = "^1.21.2"
pandas = "*"

Package Discovery and Namespace Packages

Automatic Discovery

flat-layout
project_root_directory
├── pyproject.toml  # AND/OR setup.cfg, setup.py
├── ...
└── mypkg/
    ├── __init__.py
    ├── ...
    ├── module.py
    ├── subpkg1/
       ├── __init__.py
       ├── ...
       └── module1.py
    └── subpkg2/
        ├── __init__.py
        ├── ...
        └── module2.py
src-layout
project_root_directory
├── pyproject.toml  # AND/OR setup.cfg, setup.py
├── ...
└── src/
    └── mypkg/
        ├── __init__.py
        ├── ...
        ├── module.py
        ├── subpkg1/
           ├── __init__.py
           ├── ...
           └── module1.py
        └── subpkg2/
            ├── __init__.py
            ├── ...
            └── module2.py

Dependencies Management in Setuptools