Я создаю приложение, которое загружает и устанавливает собственные плагины для яйца, но у меня проблема с загрузкой яйца после того, как easy_install извлечет его на место. Вот как это работает сейчас:
- Приложение загружает яйцо во временную папку
- Устанавливает egg с setuptools.command.easy_install.main () в папку ~ / .app / plugins (которая указана pth в dist-пакетах)
- На этом этапе ~ / .apps / plugins / easy-install.pth обновляется новым путем к яйцу
Проблема в том, что pth не перезагружается до тех пор, пока процесс python не будет перезапущен, что означает, что приложение должно быть остановлено и перезапущено (приложение является длительным процессом, и установка плагина не должна требовать перезапуска).
Таким образом, вопрос заключается в том, как либо программно перезагрузить pth, чтобы плагин открыл точку входа для нового яйца, либо как-то с помощью easy_install вернуть путь, в который оно установило яйцо, чтобы я мог вручную (с помощью pkg_resources) загрузить новый плагин?
Я мог бы создать функцию, которая пытается угадать путь easy_install'а или самостоятельно проанализировать pth, но я предпочитаю этого не делать, если это вообще возможно.
Python 2.6, setuptools 0.6c9
Благодаря Мариусу Гедминасу , то, что я сейчас делаю, в основном:
dist = pkg_resources.get_distribution(plugin_name)
entry = dist.get_entry_info(entry_point_name, plugin_name)
plugin = entry.load()