💾 Archived View for tilde.team › ~amok › python.gmi captured on 2024-08-25 at 10:13:05. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-08-19)

-=-=-=-=-=-=-

GestiĂłn de Proyectos con RYE

Estoy empezando a encarar proyectos más complejos que simples scripts en Python. Para eso es necesario manejar entornos virtuales, dependencias, etc., todo lo cual me resulta extremadamente embolante. De modo que voy a intentar utilizar Rye para que se encargue de todo esto por mí. Existen alternativas más conocidas, como Poetry, pero me crucé primero con un tutorial acerca de Rye en Atareao.es así que vamos con esto.

InstalaciĂłn

Lo primero es instalar el paquete:

curl -sSf https://rye.astral.sh/get | bash

A continuación añadimos el directorio shims a nuestro PATH. Podemos aceptar la sugerencia del instalador, que sería lo más sencillo, o hacerlo manualmente:

echo 'source "$HOME/.rye/env"' >> ~/.bashrc

Uso básico

Inicializamos un proyecto con `rye init` (`init` acepta un montĂłn de opciones):

rye init mi_proyecto

Esto crea la siguiente estructura:

.
├── .git
├── .gitignore
├── .python-version
├── README.md
├── pyproject.toml
└── src
    └── my_project
        └── __init__.py

El archivo más importante es `pyproject.toml` donde se guarda la metadata de nuestro proyecto, como los paquetes a ser instalados y demás. Luego de hacer `rye init`, tenemos que ejecutar una sincronización, con `rye sync` y ya estamos listos.

Podemos hacer varias cosas interesantes, como:

- Agregar dependencias: rye add "flask=>2.0"

- Listar dependencias: rye list

- Quitar dependencias: rye remove flask

- Imprimir informaciĂłn acerca del proyecto: rye show

- Ejecutar el proyecto: rye run mi_proyecto

Ejemplo

rye show

project: python-app
path: /home/emiliano/python_app
venv: /home/emiliano/python_app/.venv
target python: 3.8
venv python: cpython@3.12.4
virtual: false
configured sources:
  default (index: https://pypi.org/simple/)

De todas formas, el comando que más me interesaba `rye shell` parece que fue dado de baja, así que voy a tener que buscar alguna alternativa a esto.

Esto es todo.