mise+uvを前提にPythonの仮想環境を作成するスクリプト
以前にPython で venv & direnv を設定するスクリプトというメモを書きました。このスクリプトに関して以下の点を修正しました。
mise use 〜部分が意図した通りに動作していなかったものを修正- Pythonのバージョンを指定できるように修正(デフォルトは3.13.9)
taskfileの内容は好みで修正します。
検証環境¶
| 対象 | バージョン |
|---|---|
| mise | 2025.11.11 linux-x64 (2025-11-30) |
#!/usr/bin/env bash
PYVER=3.13.9
while getopts p-: opt; do
optarg="${!OPTIND}"
[[ "$opt" = - ]] && opt="-$OPTARG"
case "-$opt" in
-p|--python)
PYVER=$optarg
;;
--)
break
;;
-\?)
exit 1
;;
--*)
echo "$0: illegal option -- ${opt##-}" >&2
exit 1
;;
esac
done
# Python
mise use python@${PYVER}
mise exec python@${PYVER} -- uv venv .venv
cat << EOL >> mise.toml
[env]
_.python.venv = ".venv"
EOL
cat << EOL >> taskfile.yml
version: '3'
tasks:
default:
cmds:
- task --list
build:
aliases: [b]
desc: Build
cmds:
- pyinstaller build.spec
format:
aliases: [f]
desc: Format the source code
cmds:
- ruff format .
- ruff check . --fix
lint:
aliases: [l]
desc: Static analysis
cmds:
- ruff check .
- mypy .
mbuild:
aliases: [mb]
desc: MkDocs Build
cmds:
- mkdocs build --clean
mserve:
aliases: [ms]
desc: MkDocs Serve
cmds:
- mkdocs serve
test:
aliases: [t]
desc: Test
cmds:
- pytest .
zbuild:
aliases: [zb]
desc: Zensical Build
cmds:
- zensical build --clean
zserve:
aliases: [zs]
desc: Zensical Serve
cmds:
- zensical build --clean
- zensical serve
EOL