Skip to content
SPECIFICTION
Get listed

Flit

flit.pypa.io

WindowsLinux
Visit flit.pypa.io
Spec score 7.2 #24 of 27 in Python Package Managers

Spec sheet

Purpose
Flit is a simple way to put Python packages and modules on PyPI, aiming to reduce packaging effort and common mistakes.Read 9 Oct 2026 · flit.pypa.io
Integrations
Flit uses pip for installation and supports uploading to PyPI, TestPyPI, or another configured package index.Read 9 Oct 2026 · flit.pypa.io
Automated publishing
Flit supports configuring upload servers and credentials through environment variables for automated releases, while warning that environment variables can expose passwords to other scripts and libraries in the environment.Read 9 Oct 2026 · flit.pypa.io
Build
The `flit build` command builds wheel and source distribution files.Read 8 Oct 2026 · flit.pypa.io
Builds
The `flit build` command builds a wheel and source distribution, with an option to build either format alone.Read 9 Oct 2026 · flit.pypa.io
Credential handling
Flit tries to store upload passwords securely using the keyring library; without keyring, it prompts for a password for each upload.Read 9 Oct 2026 · flit.pypa.io
Intended use
Flit focuses on pure Python packages with no build steps, such as compiling C code or bundling JavaScript.Read 9 Oct 2026 · flit.pypa.io
Limit: build steps
Flit cannot be used for packages that require a build step.Read 8 Oct 2026 · flit.pypa.io
Limit: dependencies
Flit does not manage dependencies, which must be added to `pyproject.toml` by hand.Read 8 Oct 2026 · flit.pypa.io
Notable limitation
Flit cannot be used for packages that need a build step and does not manage dependencies automatically; dependencies must be added to `pyproject.toml` by hand.Read 9 Oct 2026 · flit.pypa.io
Package contents
Flit automatically includes subpackages and data files within a package.Read 8 Oct 2026 · flit.pypa.io
Packaging
Flit packages one importable module or package at a time and automatically includes its subpackages and package data files.Read 9 Oct 2026 · flit.pypa.io
Publishing
The `flit publish` command builds and uploads packages to PyPI or another configured package repository.Read 9 Oct 2026 · flit.pypa.io
Python requirement
The Flit command line tool requires Python 3.Read 9 Oct 2026 · flit.pypa.io
Reproducible builds
Flit says wheels built from the same source code can be byte-for-byte identical, with file timestamps noted as a caveat that can be overridden using `SOURCE_DATE_EPOCH`.Read 9 Oct 2026 · flit.pypa.io
Setup
The `flit init` command helps set up package information in a `pyproject.toml` file.Read 9 Oct 2026 · flit.pypa.io
Target packages
Flit focuses on pure Python packages that have no build steps.Read 8 Oct 2026 · flit.pypa.io
Version metadata
Flit can obtain a package’s version from its `__version__` attribute.Read 9 Oct 2026 · flit.pypa.io
Windows support
The `--pth-file` install option works on Windows, where symlinks typically are not allowed.Read 8 Oct 2026 · flit.pypa.io

Where Specifiction places it

Alternatives to FlitAll alternatives →