Python Project Manager (PPM) is a lightweight, class-based CLI utility designed to help developers bootstrap and manage Python project scaffolding more efficiently.
It provides reusable commands for creating common project files and environments, making it easier to start new Python projects with a clean and consistent structure.
PPM is a lightweight, class-based CLI utility for speeding up common Python project setup tasks. It helps developers generate environments, configuration files, and cleanup artifacts quickly while keeping the codebase modular and easy to extend.
- Create a Python virtual environment using
python -m venv - Generate
.envand.env.examplefiles - Create a basic
pyproject.tomlscaffold - Generate a
.gitignorefile for Python projects - Remove all
__pycache__folders recursively - Automatically discover and register CLI commands from the
ppm.commandspackage - Provide rich terminal output using
rich - Keep the architecture modular and easy to extend with
BaseTool - Speed up project bootstrapping for Python developers
PPM follows a lightweight plugin-style architecture:
BaseTooldefines the contract for all CLI command tools- Commands are discovered dynamically from the
ppm.commandspackage ppm.cliregisters commands at runtime
This keeps the project simple to expand without changing the core CLI structure.
Install the package in editable mode from the project root:
pip install -e .ppm --helpppm create-venv
ppm create-env
ppm create-toml
ppm create-ignore
ppm clean-pycacheppm create-venv
ppm create-env
ppm create-toml
ppm create-ignore
ppm clean-pycache --yesThese commands generate a virtual environment, project config files, and remove Python cache directories safely and quickly.
ppm/
├── __init__.py
├── base.py
├── cli.py
├── utils.py
└── commands/
├── clean_pycache.py
├── create_env.py
├── create_ignore.py
├── create_toml.py
└── create_venv.py
- Python 3.12+
pipsetuptools
Planned improvements include:
- More scaffolding commands
- Better command customization
- Interactive setup prompts
- Support for additional templates and project types
Contributions are welcome. To contribute:
- Fork the repository
- Create a feature branch
- Make your changes
- Open a pull request with a clear description
Developed by: Bijay
This project is licensed under the MIT License.