Pants has a robust options system, allowing you to configure hundreds of options. Every Pants option can be set via a command-line flag, an environment variable, or, most commonly, a config file.
The options system is described in detail here. This page will set up your initial Pants config file.
Pants configuration lives in a file called
pants.toml in the root of the repo. This file uses the TOML format.
If you haven't yet, create a
[GLOBAL] pants_version = "$PANTS_VERSION"
$PANTS_VERSION is the version of Pants you want to pin your repo to. When you'd like to upgrade Pants, edit
pants_version and the
./pants script will self-update on the next run.
Some project layouts use top-level folders for namespace purposes, but have the code live underneath. However, the code's imports will ignore these top-level folders, thanks to mechanisms like the
$PYTHONPATH, the JVM classpath, and the
$GOROOT. For example, to import the file
src/my_project/app.py, many projects use
import my_project.app, rather than
import src.my_project.app. Source roots are how Pants understands these imports.
By default, Pants recognizes having no source root, or having
src/py as source roots. If your project has a different structure, see Source roots for how to configure them, and for examples of different project structures with Pants.
Most Pants functionality is provided via pluggable backends. You enable a backend by listing it under the
backend_packages config key in
For example, to enable Python support:
[GLOBAL] ... backend_packages = ["pants.backend.python"]
Updated 3 months ago