Cookiecutter template designed for self-contained command-line tools.
Requires Cookiecutter 1.1 or later.
Install Cookiecutter, then run:
cookiecutter https://github.com/benwebber/cookiecutter-standalone.git
Cover all the bases with setuptools and runpy:
Install and run from your setuptools install path:
$ pip install tool $ tool
Install and run as a module:
$ python -m tool
Run from the source directory:
$ python tool/
Run from a self-contained zip archive:
$ ./tool
Supports:
- source distribution
- wheel
- self-contained executable archive
- RPM containing isolated virtual environment
Optionally bundle assets with your application.
If enabled, the cookiecutter will create an assets
package and assets.asset()
context manager. Install your assets to the sub-package:
example ├── __init__.py ├── __main__.py ├── assets │ ├── __init__.py │ └── example.txt └── cli.py
Then access them like so:
from .assets import asset
with asset('example.txt') as f:
print(f.read())
Thanks to the magic of pkg_resources, this even works inside standalone archives.
Note that this technique adds setuptools as an install dependency. You probably want to pin setuptools to a specific version.
MIT