```
uv init --python 3.12 --name $NAME --description $DESC $PATH
```
If you don't provide a path, the project is created in the CWD.
Recommended Python libraries for most industrialized development projects:
```
uv add --dev pytest mypy black ruff "bandit[toml]"
```
### Application: `--app`
The **default** project structure is:
```
example-app
├── .venv
│ ├── bin
│ ├── lib
│ └── pyvenv.cfg
├── .python-version
├── README.md
├── main.py
├── pyproject.toml
└── uv.lock
```
### Python package: `--package`
```
example-pkg
├── .python-version
├── README.md
├── pyproject.toml
└── src
└── example_pkg
└── __init__.py
```
- No `.venv`
- No `main.py`
- Creates a `src` directory with a package directory inside, using the project $PATH, but replacing dashes with underscores
- Adds a build system definition to the `pyproject.toml` file
- Adds a command definition to the `pyproject.toml` file
- The package can be used as a command, run with `uv run $PATH`, and will execute the `__init__.py` file
### Python library: `--lib`
```
example-lib
├── .python-version
├── README.md
├── pyproject.toml
└── src
└── example_lib
├── py.typed
└── __init__.py
```
You can import and execute the example function with:
```
uv run python -c "import example_lib; print(example_lib.hello())"
```
### Python script at $PATH: `--script`
Creates a script named after $PATH.
### Bare project: `--bare`
Only creates a `pyproject.toml` file.
### Version management
Show the version, except for scripts:
```
uv version --short
```
Set up git:
```
git init
git add *
```