Using uv to manage pyton projects


Using uv (https://docs.astral.sh/uv/) to create and manage python projects, code bases, and virtual environments:

Install uv software on a mac:

brew install uv

Creating the first project:

uv init uvdemoproject

Output:

Initialized project `uvdemoproject` at `/Users/jemurray/Documents/src/personalPython/uvdemoproject`

Edit code:

cd uvdemoproject
vi ./main.py

Execute code:

uv run ./main.py

Output:

jemurray@freelightbulbs uvdemoproject % uv run ./main.py 
Using CPython 3.13.7 interpreter at: /opt/homebrew/opt/python@3.13/bin/python3.13
Creating virtual environment at: .venv
Hello from uvdemoproject!

Add external libraries to a project:

uv add "mcp[cli]"

Output:

jemurray@freelightbulbs uvdemoproject % uv add "mcp[cli]"
Resolved 38 packages in 2.04s
Prepared 35 packages in 11.75s
Installed 35 packages in 30ms
 + annotated-types==0.7.0
 + anyio==4.12.1
 + attrs==25.4.0
 + certifi==2026.1.4
 + cffi==2.0.0
 + click==8.3.1
 + cryptography==46.0.4
 + h11==0.16.0
 + httpcore==1.0.9
 + httpx==0.28.1
 + httpx-sse==0.4.3
 + idna==3.11
 + jsonschema==4.26.0
 + jsonschema-specifications==2025.9.1
 + markdown-it-py==4.0.0
 + mcp==1.26.0
 + mdurl==0.1.2
 + pycparser==3.0
 + pydantic==2.12.5
 + pydantic-core==2.41.5
 + pydantic-settings==2.12.0
 + pygments==2.19.2
 + pyjwt==2.11.0
 + python-dotenv==1.2.1
 + python-multipart==0.0.22
 + referencing==0.37.0
 + rich==14.3.2
 + rpds-py==0.30.0
 + shellingham==1.5.4
 + sse-starlette==3.2.0
 + starlette==0.52.1
 + typer==0.21.1
 + typing-extensions==4.15.0
 + typing-inspection==0.4.2
 + uvicorn==0.40.0