0% encontró este documento útil (0 votos)
4 vistas24 páginas

Módulos y Paquetes en Python: Guía Completa

El documento explica los conceptos de módulos, paquetes y PyPI en Python, destacando la importancia de los módulos como archivos reutilizables y los paquetes como colecciones de módulos. También se detalla cómo crear y utilizar entornos virtuales para gestionar dependencias de proyectos, así como el proceso para crear, empaquetar y subir un paquete a PyPI usando herramientas como Twine. Se mencionan requisitos previos, errores comunes y pasos para preparar y publicar nuevas versiones de paquetes.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas24 páginas

Módulos y Paquetes en Python: Guía Completa

El documento explica los conceptos de módulos, paquetes y PyPI en Python, destacando la importancia de los módulos como archivos reutilizables y los paquetes como colecciones de módulos. También se detalla cómo crear y utilizar entornos virtuales para gestionar dependencias de proyectos, así como el proceso para crear, empaquetar y subir un paquete a PyPI usando herramientas como Twine. Se mencionan requisitos previos, errores comunes y pasos para preparar y publicar nuevas versiones de paquetes.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulos, Paquetes y PyPI

en Python
Qué es un módulo

Un módulo es un archivo .py con funciones


o clases reutilizables.

Ejemplo:

# [Link]
def sumar(a,b): return a+b

import matematicas
print([Link](3,4))
Formas de importar

import modulo → usa prefijo

from modulo import funcion → importa


símbolos concretos

from modulo import * → importa todo (no


recomendado)

import modulo as m → alias


Paquetes en Python

Un paquete es una carpeta con varios


módulos y un archivo __init__.py.

Estructura:
paquete/
└── __init__.py
└── [Link]
└── [Link]
Qué es PyPI

Repositorio oficial de paquetes de Python.

Web: [Link]

Comando: pip install nombre_paquete


Requisitos previos
• Python 3.8+ instalado

• Entorno virtual (recomendado)

• Archivos de configuración:
o __init__.py
o Código
o [Link]
o LICENSE
o [Link]

• Cuenta en TestPyPI y PyPI


Qué es un entorno virtual y por
qué usarlo
Un entorno virtual (venv) es una carpeta aislada con su propio
Python y librerías.

Permite tener versiones distintas de paquetes en proyectos


diferentes.

[Ejemplo] Ejemplo: proyectos con distintas versiones de


librerías
– Proyecto A → Django 3.2
– Proyecto B → Django 5.0
– Cada proyecto tiene su propio entorno
.venv con sus dependencias.

Evita conflictos entre dependencias globales.

Ideal para probar paquetes PyPI en entornos limpios.

Ventajas: aislamiento, control, reproducibilidad, limpieza.


Cómo crear y usar un entorno
virtual
1) Crear el entorno virtual en la carpeta del proyecto:
python -m venv .venv_nombre

2) Activar el entorno:
.venv\Scripts\activate

* Si el terminal no te permite ejecutar el script, da permisos con:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

3) Verás el prefijo (.venv_nombre) en la terminal.

4) Instala tus dependencias solo dentro de ese entorno.

5) Salir del entorno: deactivate


Ejemplo: tres proyectos con
entornos distintos
• C:\Proyectos\textfun\.venv → build, twine

• C:\Proyectos\test_textfun\.venv → textfun (instalado desde


TestPyPI)ç

• C:\Proyectos\otro_proyecto\.venv → dependencias propias

[Esquema] Cada proyecto con su propio entorno .venv


– Proyecto textfun → (.venv) con build, twine
– Proyecto test_textfun → (.venv) con textfun
instalado
– Otro proyecto → (.venv) con sus propias
librerías
– Al cambiar de carpeta, activa el entorno del
nuevo proyecto:
– .venv\Scripts\activate
Instalar herramientas de
empaquetado

Twine es una herramienta oficial de Python


que se utiliza para subir paquetes al
repositorio PyPI o TestPyPI de forma segura.
Permite autenticarte con tu token y transferir
los archivos generados por build sin exponer
contraseñas ni depender de configuraciones
antiguas de [Link].

pip install build twine


Nombre único y versión

• El nombre debe estar libre en


TestPyPI/PyPI

• Si el nombre ya existe, cámbialo (añade


sufijo)

• Cada subida requiere una versión nueva


(0.1.0 → 0.1.1)
[Link] ejemplo

[project]
name = "textfun"
version = "0.1.2"
description = "Librería educativa para jugar
con texto: invertir, contar vocales, alternar
mayúsculas, etc."
authors = [{name="Enrique Duque"}]
readme = "[Link]"
requires-python = ">=3.8"
Crear tu propio paquete

paquete/
└── paquete/__init__.py
└── paquete/[Link]
└── [Link]
└── [Link]

Construir:

python -m build
Construir el paquete

dist/
└─ <nombre>-[Link]
└─ <nombre>-[Link]

Comprobación:
python -m twine check dist/*
Crear token en TestPyPI

1) h ps://[Link]/ → Perfil →
Configuración de la cuenta Fichas de API

2) Token con alcance “Todos los proyectos"

3) Copiar token (pypi-...)

4) Guardarlo en lugar seguro


Subir a TestPyPI con twine

python -m twine upload --repository testpypi dist/*

Pegar el token cuando lo solicita

Nota: al pegar el token, no se muestran los caracteres.


Instalar desde TestPyPI (prueba)

pip install -i [Link] textfun

# En Python
Import textfun

# Probar funciones
Publicar en PyPI (producción)

python -m twine upload dist/*

Pegar el token cuando lo solicita

Nota: al pegar el token, no se muestran los


caracteres.
Mensaje informativo de PyPI

• This environment is not supported for trusted


publishing

→ Es un aviso normal; ignóralo si usas twine en local.


Errores comunes (1/2)

403 Forbidden:
• Token equivocado (PyPI vs TestPyPI)
• Token sin permisos ('Entire account')
• Nombre de proyecto reservado

Soluciones:
• Crear token en el sitio correcto
• Cambiar nombre en [Link]
• Subir versión nueva
Errores comunes (2/2)

400 File already exists → usa nueva versión y


reconstruye

Invalid long_description → revisa [Link] y


'twine check’
Preparar una nueva versión

• PyPI no permite subir dos veces la misma versión.

• Abre '[Link]' y actualiza el número de versión (por


ejemplo, 0.1.1 → 0.1.2).

• Elimina las carpetas dist/ y build/ si existen.

• Desde la raíz del proyecto, ejecuta:


python -m build
Subir a PyPI con Twine

• Una vez generados los archivos en dist/, sube la nueva


versión con:

python -m twine upload dist/*

• Introduce el token de PyPI.


Verificar y probar la nueva versión

• En un entorno limpio, instala la nueva versión:


pip install textfun==0.1.2

• Abre Python y verifica:


import textfun

También podría gustarte