0Pricing
Python Academy · Lección

Publicación con twine

Cargue el paquete en PyPI

Publicación con twine es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

El paso final

Ha generado artefactos en dist/. El último paso consiste en cargarlos en PyPI para que todo el mundo pueda ejecutar pip install con su paquete. La herramienta estándar para hacerlo es twine.

twine carga los archivos de forma segura mediante HTTPS y valida los artefactos antes de enviarlos.

Instalar twine

Instálelo con pip install twine. Es una herramienta pequeña y especializada: su única función es validar y cargar los archivos de dist/. No compila nada.

Primero, TestPyPI

Existe un entorno aislado independiente, TestPyPI, para ensayar las cargas. Publíquelo allí primero para detectar problemas sin contaminar el índice real. Los nombres y las versiones de TestPyPI son independientes de los de PyPI.

Cárguelo con twine upload --repository testpypi dist/*.

Comprobación antes de cargar

twine check dist/* valida que los metadatos y la descripción larga se mostrarán correctamente en PyPI. Ejecútelo cada vez; de lo contrario, una descripción defectuosa del README podría aparecer como texto sin formato en la página de su proyecto.

files = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in files:
    status = 'PASSED' if f.endswith(('.gz', '.whl')) else 'SKIP'
    print('check', f, '->', status)

Tokens de API, no contraseñas

Autentíquese con un token de API de su cuenta de PyPI, no con su contraseña. Use __token__ como nombre de usuario y el token, que comienza por pypi-, como contraseña. Puede limitar los tokens a un solo proyecto y revocarlos en cualquier momento.

username = '__token__'
token = 'pypi-AgEIcHl...'
print('Username:', username)
print('Token starts with:', token[:5])
print('Never commit the token to git')

Almacenamiento de credenciales

Evite volver a escribir los tokens guardándolos en un archivo ~/.pypirc o en variables de entorno (TWINE_USERNAME, TWINE_PASSWORD). Mantenga este archivo fuera del control de versiones y permita que solo usted pueda leerlo.

Publicar en PyPI

Cuando todo funcione correctamente en TestPyPI, publique el paquete de verdad con twine upload dist/*. En unos instantes su paquete podrá instalarse en todo el mundo. No hay vuelta atrás: no podrá volver a cargar la misma versión después de eliminarla.

Las versiones son inmutables

PyPI nunca permite sobrescribir una versión publicada. Si encuentra un error después de publicar, debe lanzar una versión nueva, por ejemplo, incrementando el número de parche. Integre esta regla en su flujo de trabajo para no quedarse bloqueado.

published = {'1.0.0', '1.0.1'}
new_version = '1.0.1'
if new_version in published:
    print(new_version, 'already on PyPI - bump and rebuild')
else:
    print(new_version, 'is free to upload')

Verifique la instalación

Después de cargar el paquete, confirme que funciona: cree un entorno virtual nuevo y ejecute pip install mytool; después, impórtelo. Instalarlo en un entorno limpio permite detectar archivos que faltan y errores en las dependencias que la compilación no detectó.

Publicación confiable

Los proyectos modernos pueden prescindir de los tokens manuales mediante la publicación confiable: PyPI autentica directamente un flujo de trabajo de CI, como GitHub Actions, mediante OpenID Connect. No se almacena ningún secreto de larga duración, lo que resulta más seguro.

twine sigue encargándose de la carga, pero las credenciales son temporales y se emiten durante la ejecución.

Automatizar las publicaciones

Una configuración habitual activa una publicación cuando se envía una etiqueta de git como v1.0.0. El flujo de trabajo de CI compila, ejecuta twine check y carga el paquete automáticamente. Crear la etiqueta se convierte en la única acción necesaria para publicar una versión.

Esto mantiene la coherencia de las publicaciones y elimina los errores de carga manual.

Comprobación rápida

Compruebe sus conocimientos sobre la publicación.

Resumen

Ha publicado un paquete:

  • pip install twine y después twine check dist/*
  • Ensayar en TestPyPI antes de realizar la carga real
  • Autenticarse con un token de API limitado (__token__), nunca con una contraseña
  • twine upload dist/* publica el paquete; las versiones son inmutables, por lo que debe incrementar la versión para corregir errores
  • Verificar la instalación con un pip install en un entorno limpio

Preguntas frecuentes

¿La lección «Publicación con twine» es gratis?

Sí — el texto completo de «Publicación con twine» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Publicación con twine»?

Cargue el paquete en PyPI Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Publicación con twine»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Estructura del proyecto y pyproject.toml
  2. Compilación con build
  3. Versionado y metadatos
  4. Publicación con twine
← Volver a Python Academy