A minimal Python package scaffold using the src/ layout.
- Library code in
src/your_project/ - Handy scripts in
scripts/ - Installed locally in editable mode via
requirements.txt(contains-e .)
your-project/
├─ src/
│ └─ your_project/
│ ├─ __init__.py
│ └─ __main__.py
├─ scripts/
│ └─ smoke_test.py
├─ .gitignore
├─ pyproject.toml
├─ requirements.txt
└─ README.md
- Python 3.11+ (3.12/3.13 OK)
# from repo root
python -m venv .venvWindows (PowerShell):
. .\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txtmacOS/Linux:
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txtThis installs the package in editable mode so changes under src/your_project/ are picked up immediately.
Run the module:
python -m your_projectRun the smoke script:
python scripts/smoke_test.pyWhen you create a new project from this template:
- Rename
src/your_project/→src/<new_pkg_name>/ - In files, replace
your_projectwith<new_pkg_name>:pyproject.toml(project name)scripts/smoke_test.pyimportREADME.mdexamples__main__.py(optional)
- Create venv, activate, and install:
python -m venv .venv # activate... python -m pip install --upgrade pip pip install -r requirements.txt - Run:
python -m <new_pkg_name> python scripts/smoke_test.py