Mise + Python Cookbook
Here are some tips on managing Python projects with mise.
A Python Project with virtualenv
Here is an example python project with a requirements.txt
file.
toml
min_version = "2024.9.5"
[env]
# Use the project name derived from the current directory
PROJECT_NAME = "{{ config_root | basename }}"
# Automatic virtualenv activation
_.python.venv = { path = ".venv", create = true }
[tools]
python = "{{ get_env(name='PYTHON_VERSION', default='3.11') }}"
ruff = "latest"
[tasks.install]
description = "Install dependencies"
alias = "i"
run = "uv pip install -r requirements.txt"
[tasks.run]
description = "Run the application"
run = "python app.py"
[tasks.test]
description = "Run tests"
run = "pytest tests/"
[tasks.lint]
description = "Lint the code"
run = "ruff src/"
[tasks.info]
description = "Print project information"
run = '''
echo "Project: $PROJECT_NAME"
echo "Virtual Environment: $VIRTUAL_ENV"
'''