¿Cómo easy_install egg plugin y cargarlo sin reiniciar la aplicación?
Estoy creando una aplicación que descarga e instala sus propios complementos de huevo, pero tengo un problema al cargar el huevo después de que easy_install lo extrae en su lugar. Así es como funciona ahora:
La aplicación descarga el huevo en la carpeta temporalInstala egg con setuptools.command.easy_install.main () en la carpeta ~ / .app / plugins (que se señala con una pth en dist-packages)En este punto, ~ / .apps / plugins / easy-install.pth se actualiza con la nueva ruta del huevoEl problema es que la pth no se vuelve a cargar hasta que se reinicia el proceso de Python, lo que significa que la aplicación debe detenerse y reiniciarse (la aplicación es un proceso de larga ejecución y la instalación del complemento no debe requerir un reinicio).
Entonces, la pregunta es cómo, ya sea volver a cargar el pth programáticamente para que el descubrimiento del punto de entrada del complemento funcione para el nuevo huevo, o de alguna manera hacer que easy_install devuelva la ruta en la que instaló el huevo, para que pueda cargar manualmente el nuevo complemento (con pkg_resources) ?
Podría crear una función que intente adivinar la ruta easy_install'ed o analizar la pth por mi cuenta, pero prefiero no hacerlo, si es posible.
Python 2.6, setuptools 0.6c9
Gracias aMarius Gedminas, lo que estoy haciendo ahora básicamente es:
dist = pkg_resources.get_distribution(plugin_name)
entry = dist.get_entry_info(entry_point_name, plugin_name)
plugin = entry.load()