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:

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.

Proxy Information
Original URL
gemini://tilde.team/~amok/python.gmi
Status Code
Success (20)
Meta
text/gemini; lang=en
Capsule Response Time
447.093092 milliseconds
Gemini-to-HTML Time
0.783775 milliseconds

This content has been proxied by September (3851b).