Saltar a contenido

🚫 🚧 Instalando dependencias sin uv 🚧 🚫

no recomendado

Debido a que uv es el gestor de dependencias y entornos utilizado en Callisto, lo comentado a continuación NO SE RECOMIENDA y se expone como una alternativa mientras migras tu proyecto a uv.

No se garantiza de que funcione.

Crear el entorno de trabajo

$ python3.12 -m venv .venv
$ source .venv/bin/activate

Instalar las dependencias

Para tener en cuenta

El archivo requirements-dev.txt contiene todas las dependencias del proyecto en sí, dependencias de desarrollo (ruff, black, etc...), documentación(mkdocs) y de pruebas(pytest).

$ (env) pip install --upgrade pip
$ (env) pip install -r requirements-dev.txt

Iniciando el servidor local con uvicorn

$ (env) uvicorn main:fastapp --reload --port 6969

Nota

La forma correcta en este caso es main:fastapp y no main:app

Migrando desde otros gestores de dependencias

Recuerda

Con uv ya no necesitas cosas como:

  • pyenv
  • virtualenv
  • pip (en la mayoría de los casos)

ya que uv se encarga de manejar todas estas cosas por tí 🤝 🥳

desde pip, pip-tools

Si vienes de pip, pip-tools, te recomendamos la guía Writing your pyproject.toml, para gestionar de mejor manera tus dependencias.

desde Poetry

El mayor cambio está en la configuración del archivo pyproject.toml, ya que uv se rige por el PEP 518 y PEP 621.

ejemplo con Poetry:

[tool.poetry]
package-mode = false

name = "Callisto"
version = "2024.11.29"
license = "Apache-2.0 OR MIT"
readme = "README.md"

[tool.poetry.dependencies]
python = "~3.11"

fastapi = "~0.114"
pydantic = "~2.8"
uvicorn = "~0.30"

...

ejemplo con uv

Un proyecto consta de algunas partes importantes que trabajan juntas y permiten a uv gestionar su proyecto.

[project]
name = "Callisto"
version = "2025.01.18"
readme = "README.md"
license = {text = "Apache-2.0 OR MIT"}

requires-python = "~=3.12" # definido en el PEP

dependencies = [
  "fastapi~=0.114.2",
  "pydantic~=2.8.2",
  "uvicorn~=0.30.6",
]

...
como se evidencia, no solo los nombres de las llaves de cada sección, si no la semántica de la definición de las versiones cambia considerablemente.

Lectura recomendada