• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Creación de paquetes de Python

febrero 21, 2020 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

Hoy voy a iniciar una serie de entradas en las que explicaré el proceso de creación de paquetes de Python. Además de explicar diferentes opciones para su distribución, incluyendo subirlos a PyPI. La serie consta de las siguiente siete entradas:

  1. Creación de paquetes de Python
  2. Pruebas unitarias en Python
  3. Probar en múltiples versiones de Python
  4. Cobertura de las pruebas unitarias en Python
  5. Gestionar las dependencias de paquetes Python
  6. Documentar paquetes de Python
  7. Distribuir paquetes de Python

Durante las entradas crearemos un paquete de ejemplo, al que llamaremos pylane, con el que ver los diferentes pasos a seguir. Este paquete lo podéis encontrar en nuestra cuenta GitHub.

El código utilizado en esta serie se publicará en el repositorio pylane en la cuenta de GitHub de Analytics Lane.

Tabla de contenidos

  • 1 Creación de un paquete de Python
  • 2 Plantillas para Cookiecutter
  • 3 Iniciar el proyecto a partir de la plantilla
  • 4 Estructura del proyecto
    • 4.1 Subpaquetes
  • 5 Función “¡Hola Mundo!”
  • 6 Instalación y ejecución del paquete
  • 7 Conclusiones

Creación de un paquete de Python

Poder estructurar el código en paquetes es algo de gran ayuda para no solo para reutilizar el trabajo, sino que para mantener este, evolucionarlo y distribuirlo de una forma estándar. En una serie anterior hemos visto cómo distribuir el código en JavaScript, pero nunca lo habíamos tratado en Python.

Una de las mejores soluciones para la creación de paquetes en Python es Cookiecutter, ya que ofrece múltiples plantillas a partir de las cuales comenzar nuestro trabajo. Permitiendo así comenzar tener con una estructura básica sobre la que trabajar.

Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane
En Analytics Lane
Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane

Cookiecutter se distribuye como un paquete más de Python, por lo que en primer lugar será necesario instalarlo en el ordenador. Lo que haremos, como siempre, mediante el comando pip.

pip install cookiecutter

Plantillas para Cookiecutter

Una vez instalado Cookiecutter es necesario descargar una plantilla. Una de las más sencillas es “cookiecutter-pypackage-minimal”, que, tal como su nombre indica, es una plantilla mínima para creación de paquetes de Python. La plantilla se encuentra en un repositorio de GitHub que debemos clonar mediante el siguiente comando.

git clone https://github.com/kragniz/cookiecutter-pypackage-minimal.git

Al finalizar el proceso aparecerá una carpeta con el nombre cookiecutter-pypackage-minimal en la ruta donde se hubiese ejecutado el comando. La carpeta que contiene la plantilla que usara Cookiecutter para crear la estructura de nuestro paquete.

Publicidad


Iniciar el proyecto a partir de la plantilla

Para crear la plantilla de nuestro proyecto solamente tendremos que llamar a Cookiecutter indicando la plantilla que deseamos utilizar, es decir:

cookiecutter cookiecutter-pypackage-minimal

En este momento un asistente nos preguntará la información básica del proyecto como son el nombre, el autor y el repositorio donde se almacenará. Valores que son importantes, pero podremos cambiar en un futuro sin problemas.

Si no queremos descargar la plantilla, es posible indicar a Cookiecutter el repositorio para que sea él quien descargue la plantilla. Para la plantilla que estamos utilizando podemos utilizar el comando:

cookiecutter https://github.com/kragniz/cookiecutter-pypackage-minimal.git

Estructura del proyecto

Una vez finalizado el asistente se creará una carpeta con el nombre de nuestro proyecto. En nuestro caso lo hemos llamado pylane. Una carpeta que tendrá la siguiente estructura

  • pylane : carpeta en la que se encuentra todo el código de paquete, en cada caso proyecto tendrá un nombre diferente.
  • tests:  carpeta donde se encuentran las pruebas unitarias (se verá en la segunda entrega).
  • tox.ini: se utiliza junto con Pytest para pruebas de múltiples entornos (se verá en la tercera entrega).
  • LICENSE.txt: archivo de licencia para distribución del código
  • README.rst – donde se encuentra la documentación en formato rst (se verá en la sexta entrega).
  • setup.py – se utiliza para especificar los detalles del paquete (se verá en la quinta entrega).

En el interior de la carpeta con el nombre del proyecto solamente tendremos un archivo __init__.py en la que se han de incluir o importar el código del proyecto. En este momento solamente incluirá la descripción del paquete, la versión y el autor.

Subpaquetes

En el caso de que necesitemos incluir un subpaquete dentro del propio paquete se tiene que crear una carpeta con el nombre de este. Dentro de la cual se incluirá un archivo __init__.py y el resto de los archivos del subpaquete u otros subpaquetes.

Publicidad


Función “¡Hola Mundo!”

Simplemente para ver que podemos crear un paquete e instalarlo en nuestra máquina vamos a crear una función que imprima por pantalla el texto “¡Hola mundo!”. Algo que solamente es una prueba, lo que se puede hacer añadiendo el siguiente código al archivo __init__.py

def hola_mundo():<br>
    print("¡Hola mundo!")

Instalación y ejecución del paquete

Ahora podemos instalar el paquete en nuestro ordenador para probar su funcionamiento. Para lo que nos situaremos en la carpeta del proyecto e invocamos el siguiente comando pip:

pip install -e .

La opción -e indica que el paquete es editable y el punto es la ruta al proyecto. Una vez hecho esto ya podemos importar el paquete y llamar a la función que hemos creado. Lo que haremos como cualquier otro paquete descargado de PyPI, escribiendo las siguientes líneas en un archivo:

from pylane import hola_mundo

hola_mundo()

Al ejecutar este archivo deberá aparecer por pantalla el mensaje “¡Hola mundo!”.

Conclusiones

En esta primera entrega de la serie “Creación de paquetes de Python” hemos visto cómo usar Cookiecutter para crear la plantilla de nuestro proyecto y añadir una primera función de prueba. Además, hemos visto cómo instalar el paquete en desarrollo en nuestro ordenador, lo que nos permite probar el funcionamiento de este en un entorno trabajo real.

La semana que viene vamos a ver una de las partes más importantes para garantizar que el proyecto pueda evolucionar con garantías. La escritura y ejecución de pruebas unitarias.

Imagen de seth0s en Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 4 / 5. Votos emitidos: 1

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane
  • Calculadora de Tamaño del Efecto: la herramienta clave para entender cuánto importa realmente una diferencia
  • Calculadora de Contrastes de Hipótesis: interpreta correctamente el p-valor y toma decisiones estadísticas con confianza
  • Nuevo conversor de timestamp Unix en el laboratorio de Analytics Lane
  • Nuevo test de normalidad interactivo en el laboratorio de Analytics Lane
  • Nuevo codificador y decodificador Base64 y URL en el laboratorio de Analytics Lane
  • Nueva calculadora de distribuciones de probabilidad en el laboratorio de Analytics Lane
  • Nuevo visualizador interactivo de PCA en el laboratorio de Analytics Lane
  • Nueva herramienta: Comparador y Formateador de Texto y JSON en el laboratorio de Analytics Lane

Publicado en: Python

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Calculadora de Tamaño del Efecto: la herramienta clave para entender cuánto importa realmente una diferencia

abril 25, 2026 Por Daniel Rodríguez

Calculadora de Contrastes de Hipótesis: interpreta correctamente el p-valor y toma decisiones estadísticas con confianza

abril 24, 2026 Por Daniel Rodríguez

Nuevo conversor de timestamp Unix en el laboratorio de Analytics Lane

abril 24, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Calculadora de Tamaño del Efecto: la herramienta clave para entender cuánto importa realmente una diferencia publicado el abril 25, 2026 | en Noticias
  • Instantáneas de VirtualBox (Snapshots) publicado el marzo 27, 2019 | en Herramientas
  • Creación de gráficos de barras y gráficos de columnas con Seaborn publicado el julio 18, 2023 | en Python
  • Conectar máquinas VirtualBox entre sí y con el resto de la red publicado el noviembre 3, 2023 | en Herramientas
  • Jupyter Notebooks en Visual Studio Code Jupyter Notebooks en Visual Studio Code publicado el junio 22, 2020 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.9 (11)

Pandas: Cambiar los tipos de datos en los DataFrames

Comentarios recientes

  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto