HOWTO · Python
Instalar el archivo Egg en Python
Este tutorial describe cómo instalar el archivo .egg en Python y las herramientas necesarias para lograr la operación.
En esta página
Un archivo Python .egg es un formato de distribución heredado asociado con setuptools. Los archivos wheel (.whl) son el formato más reciente y la mejor opción para proyectos nuevos. Si necesitas trabajar con un egg existente, comprueba primero qué versiones de Python y plataformas admite; la extensión del archivo por sí sola no confirma su compatibilidad.
Instalar un archivo .egg en Python con setuptools
Históricamente, setuptools incluía el comando easy_install para instalar eggs. Las instrucciones para Windows que aparecen a continuación describen un flujo de trabajo de la época de Python 2.7, no un procedimiento general para las instalaciones actuales de Python. Úsalo solo en un entorno heredado donde setuptools y easy_install ya estén disponibles para el intérprete de destino y el egg se haya creado para una versión y plataforma de Python compatibles.
En ese entorno, el comando tiene esta forma: easy_install path\\to\\package.egg. Ejecútalo desde un símbolo del sistema donde el directorio Scripts del intérprete previsto esté disponible en PATH, o invoca el archivo easy_install.exe correspondiente mediante su ruta completa. Una variable como PYTHON_PATH no hace que Windows encuentre ejecutables: PATH es la variable que se usa para buscarlos. No uses una descarga antigua del instalador bootstrap como instrucción de instalación actual.
El nombre de archivo delftscope-0.1-py3.10.egg sugiere que se creó para Python 3.10. Ese nombre no demuestra que Python 2.7 pueda instalar el paquete, y el material proporcionado no aporta pruebas de compatibilidad para este ejemplo. Tómalo solo como ilustración: no lo combines con el procedimiento para Python 2.7 ni prometas que funcionará, a menos que una fuente fiable confirme la compatibilidad. Del mismo modo, incluye la salida esperada del comando únicamente si hay una base fiable para hacerlo; de lo contrario, omítela. Si no puedes determinar el intérprete de destino, la plataforma o el comportamiento del comando, limita las instrucciones al entorno verificado o indica claramente que se trata de un procedimiento histórico sin verificar.
Para proyectos nuevos, es preferible instalar un wheel compatible con el flujo de trabajo de pip admitido por el proyecto, en lugar de depender de easy_install.
Inspeccionar e instalar un archivo .egg extrayéndolo
Un archivo .egg comprimido es un archivo ZIP, por lo que una utilidad de archivado puede mostrar o extraer su contenido. En un sistema que tenga unzip, unzip -l package.egg muestra el contenido del archivo, pero no extrae los archivos. Para extraerlo en un directorio aparte, usa unzip package.egg -d extracted-package. Algunos eggs ya son directorios descomprimidos y no archivos ZIP; unzip no se puede usar con un directorio, así que inspecciona sus archivos directamente.
El siguiente ejemplo en Python crea un pequeño .egg basado en ZIP e imprime los nombres de sus elementos. Muestra cómo inspeccionar un archivo con la biblioteca estándar.
from pathlib import Path
from tempfile import TemporaryDirectory
from zipfile import ZIP_DEFLATED, ZipFile
with TemporaryDirectory() as temp_dir:
egg_path = Path(temp_dir) / "sample_package-1.0-py3-none-any.egg"
with ZipFile(egg_path, "w", ZIP_DEFLATED) as egg:
egg.writestr("sample_package/__init__.py", "VERSION = '1.0'\n")
egg.writestr("EGG-INFO/PKG-INFO", "Metadata-Version: 1.2\nName: sample-package\nVersion: 1.0\n")
with ZipFile(egg_path) as egg:
for name in egg.namelist():
print(name)
sample_package/__init__.py
EGG-INFO/PKG-INFO
Este archivo mínimo ilustra la inspección de un ZIP; no constituye una instalación completa de un paquete. Para extraer un egg existente, inspecciona primero los archivos. Ejecuta python setup.py install desde el directorio que contiene setup.py únicamente si ese archivo está presente, las instrucciones del paquete indican que se use este procedimiento heredado y el entorno de Python seleccionado es compatible. Este comando ejecuta código de instalación proporcionado por el paquete, así que úsalo solo con paquetes de confianza. Si no hay un archivo setup.py, la extracción por sí sola no instala el paquete; sigue las instrucciones documentadas del paquete.