Skip to content

Instantly share code, notes, and snippets.

@jmquintana79
Last active October 16, 2024 09:48
Show Gist options
  • Save jmquintana79/f7988e1395a4e74b95b4a5ac4f92c9b7 to your computer and use it in GitHub Desktop.
Save jmquintana79/f7988e1395a4e74b95b4a5ac4f92c9b7 to your computer and use it in GitHub Desktop.
Manual y listado de comandos para operara con *poetry*.

Comandos básicos

Poetry es una herramienta de gestión de dependencias y empaquetado en Python que simplifica la gestión de proyectos. Aquí tienes algunos comandos básicos para manejar dependencias con Poetry:

1. Inicializar un proyecto nuevo:

poetry init

Este comando te guiará a través de una serie de preguntas para configurar un nuevo proyecto de Poetry. Básicamente crea el archivo pyproject.toml. Este archivo es utilizado para definir las dependencias del proyecto, la versión de Python, la configuración del entorno y otros metadatos del paquete, como el nombre, la versión y el autor.

2. Añadir una dependencia:

poetry add <nombre_paquete>

Por ejemplo, para añadir requests:

poetry add requests

3. Añadir una dependencia de desarrollo:

poetry add --dev <nombre_paquete>

Por ejemplo, para añadir pytest como una dependencia de desarrollo:

poetry add --dev pytest

4. Instalar todas las dependencias:

poetry install

Esto instala todas las dependencias listadas en el archivo pyproject.toml.

5. Actualizar dependencias:

poetry update

Actualiza todas las dependencias a sus versiones más recientes permitidas por el archivo pyproject.toml.

6. Remover una dependencia:

poetry remove <nombre_paquete>

Por ejemplo, para remover requests:

poetry remove requests

7. Listar las dependencias:

poetry show

Esto muestra todas las dependencias del proyecto.

8. Ver la información de una dependencia específica:

poetry show <nombre_paquete>

Por ejemplo, para ver la información sobre requests:

poetry show requests

9. Entrar a un shell con el entorno virtual activado:

poetry shell

Esto abre un nuevo shell con el entorno virtual del proyecto activado.

10. Ejecutar un comando dentro del entorno virtual de Poetry:

```sh
poetry run <comando>
```
Por ejemplo, para ejecutar un script de Python:
```sh
poetry run python script.py
```

11. Bloquear las dependencias en poetry.lock:

```sh
poetry lock
```
Esto genera o actualiza el archivo `poetry.lock` con las versiones exactas de las dependencias.

12. Publicar un paquete en PyPI:

```sh
poetry publish
```
Este comando publica el paquete en PyPI. Puedes añadir la opción `--build` para construir el paquete antes de publicarlo:
```sh
poetry publish --build
```

13. Construir un paquete SIN publicar en Pypi:

Ver mas adelante.

Ejemplo de pyproject.toml

Claro, aquí tienes un ejemplo de un archivo pyproject.toml que puede ser usado por Poetry para gestionar un proyecto de Python:

[tool.poetry]
name = "mi_proyecto"
version = "0.1.0"
description = "Una breve descripción de mi proyecto."
authors = ["Tu Nombre <[email protected]>"]
license = "MIT"
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.8"
requests = "^2.25.1"
numpy = "^1.21.0"

[tool.poetry.dev-dependencies]
pytest = "^6.2.4"
black = "^21.6b0"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

Descripción de las secciones

  1. [tool.poetry]: Contiene la información principal sobre tu proyecto.

    • name: El nombre del proyecto.
    • version: La versión actual del proyecto.
    • description: Una breve descripción del proyecto.
    • authors: Una lista de autores del proyecto.
    • license: La licencia del proyecto.
    • readme: El archivo de README del proyecto.
  2. [tool.poetry.dependencies]: Lista las dependencias del proyecto.

    • python: La versión de Python requerida.
    • requests y numpy: Ejemplos de dependencias del proyecto con sus versiones especificadas usando el símbolo ^ para indicar la compatibilidad semántica.
  3. [tool.poetry.dev-dependencies]: Lista las dependencias de desarrollo, que son necesarias para el desarrollo y pruebas del proyecto pero no para su funcionamiento en producción.

    • pytest y black: Ejemplos de dependencias de desarrollo.
  4. [build-system]: Define el sistema de construcción utilizado por Poetry.

    • requires: Lista las dependencias necesarias para construir el proyecto. poetry-core es la biblioteca principal que gestiona la construcción de paquetes.
    • build-backend: Especifica el backend de construcción, en este caso, es poetry.core.masonry.api.

Este archivo pyproject.toml puede ser adaptado según las necesidades específicas de tu proyecto. Puedes agregar o quitar dependencias y ajustar otros valores conforme a tus requisitos.

Configurar la Ubicación del Entorno Virtual

Por defecto, Poetry guarda los entornos virtuales en un directorio gestionado por Poetry. Si prefieres que el entorno virtual se cree dentro del directorio del proyecto, puedes configurar Poetry para hacerlo:

1. Configurar Poetry para usar un entorno virtual dentro del proyecto:

poetry config virtualenvs.in-project true

Esto hará que el entorno virtual se cree en una carpeta .venv dentro del directorio de tu proyecto.

2. Verificar la configuración:

Para verificar que la configuración se ha aplicado correctamente:

poetry config --list

Deberías ver una línea como esta en la salida:

virtualenvs.in-project = true

3. Recrear el entorno virtual:

Si ya tienes un entorno virtual creado y deseas aplicar esta configuración, primero elimina el entorno virtual existente y luego instálalo nuevamente:

poetry env remove <versión_python>  # Por ejemplo, "poetry env remove 3.8"
poetry install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment