Your company here — click to reach over 10,000 unique daily visitors

putup - Man Page

putup – PyScaffold command-line interface


putup [-h] [-n NAME] [-p PACKAGE_NAME] [-d TEXT] [-l LICENSE] [-u URL] [-f] [-U] [-V] [-v] [-vv] [-P] [--list-actions] [--cirrus] [--config CONFIG_FILE [CONFIG_FILE ...] | --no-config] [--save-config [SAVE_CONFIG]] [--github-actions] [-gitlab] [-i] [--namespace NS1[.NS2]] [--no-pyproject] [--no-skeleton] [--no-tox] [--pre-commit] [--venv [VENV]] [--venv-install PACKAGE [PACKAGE ...]] PROJECT_PATH


PyScaffold is a tool for easily putting up the scaffold of a Python project.


Positional Arguments


path where to generate/update project

Optional Arguments


show a help message and exit

-n NAME--name NAME

installable name (as in pip install/PyPI, default: basename of PROJECT_PATH)


package name (as in import, default: NAME)

-d TEXT--description TEXT

package description


package license like MIT, AGPL-3.0-or-later, AGPL-3.0-only, Apache-2.0, Artistic-2.0, 0BSD, BSD-2-Clause, BSD-3-Clause, CC0-1.0, EPL-1.0, GPL-2.0-or-later, GPL-2.0-only, GPL-3.0-or-later, GPL-3.0-only, ISC, LGPL-2.0-or-later, LGPL-2.0-only, LGPL-3.0-or-later, LGPL-3.0-only, MPL-2.0, Unlicense, Proprietary (default: MIT)

-u URL--url URL

main website/reference URL for package


force overwriting an existing directory


update an existing project by replacing the most important files like setup.py etc. Use additionally --force to replace all scaffold files.


show program’s version number and exit


show additional information about current actions


show all available information about current actions


do not create project, but displays the log of all operations as if it had been created


do not create project, but show a list of planned actions


add configuration file for Cirrus CI (includes --pre-commit)


config file to read PyScaffold’s preferences (see --help output for default)


prevent PyScaffold from reading its default config file

--save-config [SAVE_CONFIG]

save the given options in a config file (see --help output for default)


add configuration file for GitHub Actions (includes --pre-commit)


generate GitLab CI configuration files


interactively choose and configure PyScaffold’s parameters

--namespace NS1[.NS2]

put your project inside a namespace package (default: use no namespace)


do not include a pyproject.toml file in the project root, and thus avoid isolated builds as defined in PEP517 / 518 [not recommended]


omit creation of skeleton.py and test_skeleton.py


prevent a tox configuration file from being created


generate pre-commit configuration file

--venv [VENV]

create a virtual environment for the project (using virtualenv or stdlib’s venv). Default location: “.venv”. If virtualenv is available, it will be used, since it has some advantages over stdlib’s venv (such as being faster, see https://virtualenv.pypa.io/en/stable/). Notice that even if part of Python’s stdlib, venv is not guaranteed to be installed; some OS/distributions (such as Ubuntu) require an explicit installation. If you have problems, try installing virtualenv with pip(1) and run the command again.

--venv-install PACKAGE [PACKAGE ...]

install packages inside the created venv. The packages can have dependency ranges as if they would be written to a requirements.txt file, but remember to use quotes to avoid messing with the terminal

See Also

pip(1), python(1)

pre-commit, tox, virtualenv

Cirrus CI, GitHub Actions, GitLab CI


April 2022