Construyendo y Distribuyendo su Paquete
Ahora que hemos creado un paquete Python con archivos adicionales y hemos confirmado que podemos acceder a ellos, aprendamos cómo construir y distribuir este paquete.
Actualizando el Script de Configuración
Antes de construir el paquete, actualicemos nuestro archivo setup.py para incluir más metadatos y requisitos:
cd ~/project
cat > setup.py << 'EOF'
from setuptools import setup, find_packages
setup(
name="mypackage",
version="0.1.0",
packages=find_packages(),
## Include data files
package_data={
"mypackage": ["config.ini", "data/*.txt"],
},
## Dependencies
install_requires=[
"setuptools",
],
## Metadata
author="Your Name",
author_email="your.email@example.com",
description="A simple Python package with additional files",
keywords="sample, package, data",
url="https://example.com/mypackage",
classifiers=[
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
],
python_requires=">=3.6",
)
EOF
Construyendo Distribuciones de Código Fuente y Rueda (Wheel)
Los paquetes Python se pueden distribuir en varios formatos, pero los más comunes son:
- Distribución de Código Fuente (sdist): Un archivo tarball que contiene el código fuente y archivos adicionales
- Distribución de Rueda (bdist_wheel): Un paquete preconstruido que se puede instalar sin construir
Construyamos ambos tipos de distribuciones:
## Asegúrese de tener las últimas herramientas de construcción
pip install --upgrade setuptools wheel
## Construya las distribuciones
python setup.py sdist bdist_wheel
Debería ver una salida que indica que las distribuciones fueron creadas, y deberían aparecer nuevos archivos en el directorio dist.
Comprobemos el contenido del directorio dist:
ls -l dist
Debería ver al menos dos archivos:
- Un archivo
.tar.gz (la distribución de código fuente)
- Un archivo
.whl (la distribución de rueda)
Instalando el Paquete desde los Archivos de Distribución
Ahora, probemos la instalación del paquete desde uno de los archivos de distribución. Primero, desinstalemos nuestra versión de desarrollo:
pip uninstall -y mypackage
Ahora, instalemos la distribución de rueda:
pip install dist/mypackage-0.1.0-py3-none-any.whl
Debería ver una salida que indica que el paquete se instaló correctamente.
Verifiquemos que el paquete está instalado y que aún podemos acceder a los archivos adicionales:
python -c "import mypackage; print(mypackage.read_config())"
Esto debería mostrar el contenido del archivo config.ini:
[config]
debug = true
log_level = INFO
Publicando su Paquete
En un escenario del mundo real, normalmente publicaría su paquete en el Índice de Paquetes de Python (PyPI) para que otros puedan instalarlo usando pip install mypackage. Esto implicaría:
- Crear una cuenta en PyPI (https://pypi.org/)
- Usar herramientas como
twine para subir sus distribuciones:pip install twine
twine upload dist/*
Sin embargo, para este laboratorio, nos detendremos en la creación de las distribuciones localmente. Ahora tiene un paquete Python completo con archivos adicionales que pueden ser distribuidos e instalados por otros.
Resumen de lo que ha creado
- Un paquete Python con módulos y archivos adicionales
- Un script de configuración que incluye estos archivos en la distribución
- Funciones para acceder a estos archivos desde su código
- Archivos de distribución de código fuente y rueda listos para la distribución
Esta estructura proporciona una base sólida para cualquier paquete Python que desee crear en el futuro.