ชุดไฟล์ launcher .cmd สำหรับโปรเจกต์ Python บน Windows แยกเป็น 2 แบบ:
normal/run.cmd: สำหรับโปรเจกต์ Python ทั่วไป (requirements.txt+ optional.venv)uv/run.cmd: สำหรับโปรเจกต์ uv (pyproject.toml) flow สั้นuv sync+uv run
cmd-python-launcher/
normal/
run.cmd
uv/
run.cmd
tests/
run_cmd_logic_tests.ps1
README.md
ไฟล์: normal/run.cmd
- ใช้
.venvก่อน (ถ้ามีและ Python เวอร์ชันผ่าน) - เช็ค requirements ใน
.venv - ถ้า
.venvไม่พร้อม ให้ลอง system Python - ถ้า Python ต่ำกว่า minimum จะ fallback ไปสร้าง
.venvด้วยuvหรือ Python ปกติ - ถ้าไม่มี Python เลย จะ fallback ไป
uv run - มี cache (
.run-cache.json) เพื่อลดการเช็คซ้ำ
CFG_ENTRY_SCRIPT=main.pyCFG_REQUIREMENTS_FILE=requirements.txtCFG_VENV_DIR=.venvCFG_CACHE_FILE=.run-cache.jsonCFG_MIN_PY=3.7CFG_PREFERRED_UV_PYTHON=3.11CFG_ENABLE_CACHE=1CFG_AUTO_INSTALL_UV=1
run.cmd
run.cmd --help
run.cmd -m some_argไฟล์: uv/run.cmd
- เช็คว่ามี
uvไหม - ถ้าไม่มี และเปิด auto install ไว้ จะติดตั้งด้วย official installer
- รัน
uv sync - รัน
uv run <target> <args>
CFG_RUN_TARGET=main.pyCFG_SYNC_ARGS=CFG_AUTO_INSTALL_UV=1
run.cmd
run.cmd --helpไฟล์เทส: tests/run_cmd_logic_tests.ps1
สิ่งที่เทสครอบคลุม:
- Existing
.venv+ requirements ผ่าน - Cache hit
- Existing
.venvแต่ requirements ต่าง - System Python direct run
- Low Python + uv exists
- Low Python + uv missing
- No Python + uv fallback
- No Python + no uv (installer branch invocation)
คำสั่งรันเทส:
powershell -ExecutionPolicy Bypass -File .\tests\run_cmd_logic_tests.ps1หมายเหตุ: เทสจะสร้างโฟลเดอร์ชั่วคราวที่ tests/.sandbox และเขียนผล results.json ภายในนั้น
- ใช้กับ Windows (
.cmd) โดยตรง - ตัวติดตั้ง uv ที่ใช้:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"- ถ้าพึ่งติดตั้ง uv ใหม่ อาจต้องเปิด terminal ใหม่เพื่อให้ PATH อัปเดต