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.
- 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.