Aprenda a crear, distribuir y usar paquetes en Python con la ayuda de esta guía.

Imagine la abrumadora tarea de desarrollar una aplicación integral limitada a un único archivo de Python. Si bien es técnicamente factible, va en contra de los principios básicos de la creación de software eficiente, mantenible y reutilizable. Por tales razones, los paquetes y módulos son esenciales para construir y desarrollar software.

¿Qué es un paquete?

En Python, un paquete proporciona una manera de organizar juntos módulos y recursos lógicamente relacionados. Es un directorio que contiene múltiples módulos, subpaquetes y otros recursos de Python.

Los paquetes proporcionan una estructura jerárquica, lo que le permite organizar el código de su proyecto en diferentes niveles de abstracción.

Diferencia entre paquetes y módulos

Si bien puede usar ambos paquetes y módulos para organizar el código, hay diferencias entre ellos:

  • Módulo: Un módulo es un archivo que contiene código Python. Define funciones, clases, variables y otros objetos que puede importar y usar en su código.
  • instagram viewer
  • Paquete: Un paquete es una colección de uno o más módulos y también puede incluir subpaquetes.

Cómo crear un paquete en Python

Para crear un paquete, siga estos pasos establecidos.

Paso 1: crear un directorio de proyectos

Comience por crear un directorio de proyectos.

study_bud/

Paso 2: crear un directorio de paquetes

Dentro del directorio de su proyecto, cree otro directorio que sirva como directorio del paquete. Asígnele un nombre significativo que represente el propósito o la funcionalidad del paquete. El directorio del paquete contendrá los módulos y subpaquetes relacionados con su paquete.

study_bud/
math_tool/

Paso 3: Defina el archivo __init__.py del paquete

En el directorio del paquete, cree un __init__.py archivo. La presencia de __init__.py file es lo que hace que el directorio sea un paquete en Python.

Si necesita inicializar un código cada vez que use el paquete, inclúyalo en el __init__.py archivo de lo contrario, siempre está vacío.

study_bud/
math_tool/
__init__.py

Paso 4: agregue módulos al paquete

Dentro del directorio del paquete, agregue módulos de Python (.py) que definan funciones, clases o variables.

Estos módulos contienen el código real que proporciona la funcionalidad de su paquete. Puede crear varios módulos dentro del directorio del paquete.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py

Paso 5: agregue subpaquetes al paquete

Si su paquete necesita tener una estructura jerárquica o contiene funcionalidades distintas, puede crear subpaquetes dentro del directorio del paquete.

Un subpaquete es simplemente otro directorio de paquetes dentro del directorio del paquete principal. Cada subpaquete debe tener su __init__.py archivo. Los subpaquetes permiten una mayor organización y separación del código.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py

En estos pasos, ha creado un herramienta_matematica paquete, agregó dos módulos (operaciones.py y estadísticas.py) y dos subpaquetes geometría y cálculo cada uno con sus módulos.

Al seguir estos pasos, puede organizar fácilmente la funcionalidad relacionada mediante un paquete y subpaquetes, lo que facilita la administración y la reutilización del código.

Cómo trabajar con un paquete en Python

Para trabajar con un paquete, debe importarlo. El importar y de Las palabras clave le permiten importar y usar un paquete en su código.

import math_tool # entire package

También puede usar la notación de puntos para importar módulos, subpaquetes o propiedades específicas de un paquete. La notación de puntos le permite navegar a través de la estructura de directorios del paquete. La notación de puntos hace que sus importaciones sean más legibles y fáciles de mantener.

from math_tool.operations import add, multiply # specific functions

En el código anterior, navegó desde el directorio del paquete (herramienta_matematica) hacia operaciones módulo utilizando la notación de puntos e importó dos funciones (agregar y multiplicar).

Importaciones Absolutas vs. Importaciones relativas

Con absolutoimportaciones, especifica la ruta completa desde el paquete de nivel superior (el paquete raíz) hasta el módulo o subpaquete deseado. Esta es la forma más común y recomendada de importar módulos y paquetes en Python.

from math_tool.geometry.shapes import parallelogram

Empezando desde herramienta_matematica entrar en el geometría subpaquete, encuentre el formas.py módulo e importar el paralelogramo función.

Mientras relativoimportaciones le permite realizar importaciones relativas a la ubicación del módulo actual utilizando la notación de puntos para especificar importaciones relativas.

Por ejemplo, dentro del cálculo/integraciones.py módulo, puede usar la importación relativa para importar una función desde el formas.py módulo en el geometría subpaquete.

# calculus/integrations.py
from ..geometry.shapes import rhombus

El punto doble ("..") le dice a Python que:

  • Comience desde el directorio del subpaquete (cálculo) donde el módulo (integraciones.py) existe.
  • Vaya al paquete principal (herramienta_matematica) directorio del subpaquete.
  • Encuentra el geometría subpaquete en el directorio principal.
  • Entra en el formas.py módulo e importación rombo de eso.

Entonces, la notación de puntos representa la cantidad de directorios a los que navegar desde el directorio del módulo actual.

Importaciones de alias por conveniencia

Puede asignar un alias a una importación para que sea más fácil hacer referencia a ella en su código. Los alias son útiles cuando se trata de paquetes largos o nombres de módulos.

Para asignar un alias utilice el como palabra clave.

import math_tool.calculus as cal

Cómo distribuir su paquete en Python

Python le proporciona herramientas y una plataforma para construir y distribuir su paquete. Distribuir su paquete le permite compartir su código con otros desarrolladores, promover la colaboración, simplificar la instalación para los usuarios y contribuir a la comunidad Python más amplia.

Paso 1: Crea una cuenta en PyPI

Índice de paquetes de Python (PyPI) es el repositorio predeterminado para los paquetes de Python. Puede publicar sus paquetes en PyPI para que otros desarrolladores puedan encontrarlos e instalarlos fácilmente.

Asegúrese de recordar su nombre de usuario y contraseña ya que los necesitará para la autenticación al cargar su paquete en PyPI.

Estas herramientas le facilitan la configuración, la creación y el envío de un paquete distribuible con un solo comando.

pip install build wheel twine

Paso 3: Cree un archivo setup.py

Para distribuir su paquete, cree un archivo setup.py en el directorio raíz de su proyecto. El configuración.py El archivo contiene metadatos sobre su paquete, como su nombre, versión, autor, descripción, dependencias y más.

Las herramientas de gestión de paquetes utilizarán el configuración.py archivo para configurar y construir su paquete.

#setup.py
from setuptools import setup, find_packages

setup(
name='',
version='1.0.0',
author='',
description='A collection of mathematical utility functions',
packages=find_packages(),
install_requires=[
'numpy',
'scipy',
],
)

Paso 4: construya el paquete

Una vez que tengas la configuración.py archivo listo, puede usarlo para construir un paquete distribuible. En su terminal o símbolo del sistema, navegar al directorio que contiene el configuración.py archivo y ejecute el siguiente comando:

python setup.py sdist bdist_wheel

Este comando genera un dist directorio que contiene un paquete de distribución fuente (.tar.gz) y un paquete de distribución de ruedas (.whl). También verás un construir y información directorio.

Paso 5: suba el paquete a PyPI

Con su paquete listo, puede subirlo a PyPI.

Ejecute el siguiente comando:

twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********

Visite su PyPI página de gestión de proyectos para ver su paquete.

Ahora, otros desarrolladores que encuentren útil su paquete pueden instalarlo y usarlo localmente.

Cómo instalar un paquete de Python

Administradores de paquetes como pip facilita la instalación y administración de paquetes de Python desde varias fuentes, incluido el índice de paquetes de Python (PyPI). Para instalar un paquete usando pepita, abra su terminal o símbolo del sistema y use el siguiente comando:

pip install 

Para ver todos los comandos y opciones disponibles para pepita utilizar el --ayuda opción.

Escribir módulos limpios

Los paquetes contienen módulos y subpaquetes que a su vez contienen otros módulos. Es una buena práctica modularizar su código, especialmente cuando se trabaja en proyectos más grandes, ya que promueve una mejor organización y legibilidad del código. Por lo tanto, es importante escribir módulos con claridad al desarrollar con Python.